黑马程序员技术交流社区
标题: 【阳哥专栏】黑马Android教程-12通知&Fragment&反编译&NinePatch [打印本页]
作者: 王震阳老师 时间: 2015-4-7 14:21
标题: 【阳哥专栏】黑马Android教程-12通知&Fragment&反编译&NinePatch
本帖最后由 王震阳老师 于 2015-4-7 14:22 编辑
汇总贴:http://bbs.itheima.com/thread-180149-1-1.html
pdf附件回复可下载:
Android-通知&Fragment&反编译&NinePatch
1. 通知(★★★)通知用于在状态栏显示消息,消息到来时以图标方式表示,如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息,在Android中通过通知管理器NotificationManager来发出或关闭一个通知。
使用步骤:
点击通知,会跳转到指定页面。
注意:
- 若设置了弹出通知会有声音/震动/亮灯的效果,注意添加对应权限,否则会抛
错比如,设置震动需加权限android.permission.VIBRATE
2.获取延期意图PendingIntent时,封装的意图对象必须采用隐式的方式
2. 反编译(★)Android打包好的APK如果直接解压缩,那么里面的布局文件和字节码文件如法直接使用,但是我们可以通过以下三个反编译工具对一个APK进行反编译。
1.apktool 反编译布局文件, 反编译之后会在apk相同的目录下创建一个
命令:apktool d xxx.apk
- dex2jar 把.dex文件转换成.jar的文件, 会在相同目录下生成一个
xxx.jar
命令:dex2jar xxx.dex
3.jd-gui 查看jar文件
3. NinePatch(★)3.1什么是NinePatch图片NinePatch是一种很有用的PNG图片文件夹
格式,它可以在特定区域随文字大小进行缩放
上图中背景图片的中间区域会随着文字的大小进行缩放背景图片就是一张NinePatch图片。
3.2如何制作NinePatch图片NinePatch图片可以使用android自带的draw9patch工具来制作,该工具在SDK安装路径的tools目录下
打开“sdk\tools\draw9patch.bat”,执行此工具然后点击“File”->“open 9-path”打开一张用于制作NinePatch图片的原图,通过在画布的四边画线来指定缩放区域和文字所在区域。
画布的左边和上边是控制图片拉伸的;画布的右边和底边是控制内容显示的区域的
使用鼠标左键点击拖动来画线,使用鼠标右键点击拖动才擦除线条
点击File,点击保存,就会生成后缀名为”.9.png”格式的图片
3.3 使用NinePatch图片做背景的效果通过设置android:background="@drawable/bg"属性来设置背景图片,使用一般图片作为背景和使用NinePatch图片做背景的效果对比。
4. Fragment(★★★★)4.1什么是FragmentFragment就是小型的Activity,它是在Android3.0时出现的。
Fragment是表现Activity中UI的一个行为或者一部分。可以把fragment想象成activity的一个模块化区域,有它自己的生命周期,接收属于它自己的输入事件,并且可以在activity运行期间添加和删除(有点像一个可以在不同的activity中重用的“子Activity”)。
Fragment必须被嵌入到一个activity中。它们的生命周期直接受其宿主activity的生命周期影响。当一个activity正在运行时,就可以独立地操作每一个Fragment,比如添加或删除它们。
Fragment可以定义自己的布局、生命周期回调方法,因此可以将fragment重用到多个activity中,因此可以根据不同的屏幕尺寸或者使用场合改变fragment组合。
4.2如何创建一个Fragment- 为Fragment定义一个布局
- 定义类继承Fragment
- 重写类中的onCreateView方法,返回一个View对象作为当前Fragment的布局。
fragment第一次绘制它的用户界面的时候,系统会调用onCreateView()方法。为了绘制fragment的UI,此方法必须返回一个作为fragment布局的根的view。如果fragment不提供UI,可以返回null。
4.3如何将Fragment添加到ActivityActivity必须在清单文件中进行声明,但是Fragment不需要,Fragment只需要在Activity的布局文件中声明就可以了。
注意:代码中的四个属性是必须的要给的,“android:name”属性:指定了在layout中实例化的Fragment类是哪个。
当系统创建这个activity layout时,它实例化每一个在layout中指定的Fragment,并调用它们的onCreateView()方法,来获取每一个Fragment的layout,系统将从Fragment返回的View 直接插入到<fragment>元素所在的地方
每一个fragment都需要一个唯一的标识,如果activity重启,系统可以用来恢复Fragment,并且可以用id来捕获Fragment来处理事务,例如移除它。
有3种方法来为一个fragment提供一个ID:
为android:id属性提供一个唯一ID;
为android:tag属性提供一个唯一字符串;
如果以上2个你都没有提供,系统将使用容器view的ID;
4.4如何切换Fragment 要在activity中管理Fragment,需要使用FragmentManager可以通过调用activity的getFragmentManager()取得它的实例。
案例:点击不同的按钮切换到不同的Fragment进行显示
步骤:
- 设置布局文件:添加三个按钮用于切换Fragment,并在按钮下方添加一个FrameLayout用来替换成响应的Fragment。
- 创建三个Fragment,SportsFragment、NewsFragment、GameFragment。
其余两个Fragment跟SportsFragment代码一致,只是布局文件不同。
sports()方法、games()方法同上,因此不再给出代码清单。
4.5 Fragment的生命周期Fragment的生命周期和activity生命周期很像。
onAttach:绑定到activity
onCreate:创建fragment
onCreateView: 创建fragment的布局
onActivityCreated: activity创建完成后
onStart: 可见, 不可交互
onResume: 可见, 可交互
onPause: 部分可见, 不可交互
onStop:不可见
onDestroyView: 销毁fragment的view对象
onDestroy: fragment销毁了
onDetach: 从activity解绑了
4.6 Fragment的向下兼容Fragment是在Android 3.0才推出的,若想在3.0的低版本下使用Fragment,则需要执行下面2步:
- 把所有Fragment和FragmentManager改成support-v4包下的类
- 把Activity的继承改为FragmentActivity(support-v4包下的)
4.7 Fragment之间的通信案例案例:创建一个用于显示选项卡的Fragment和一个用于显示内容的Fragment,当
选项卡切换时,使内容的Fragment信息跟着一起切换。
步骤:
- 先创建选项卡Fragment和内容Fragment,并在activity_main.xml布局文件中进行设置,其布局效果如下:
- 为选项卡Fragment创建布局文件,其布局效果如下:
至此,本文档完!
2014年12月26日星期五 0:49:31
北京市海淀区东北旺中路东馨园
作者: mayor125 时间: 2015-4-7 15:04
收藏起来,好好研究
作者: sunshine丶朱 时间: 2015-4-7 17:27
我来看看不说话~
作者: matthewjk 时间: 2015-4-7 17:55
过来看看,,,
作者: 12300123 时间: 2015-4-7 18:40
很好很强大,支持。
作者: 郝聚德 时间: 2015-4-7 19:06
好像很牛啊....目标...
作者: 任小浩 时间: 2015-4-7 19:07
感觉好牛好牛的样子
作者: 菜鸟小A 时间: 2015-4-7 20:12
:handshake:handshake
作者: 邓士林 时间: 2015-4-7 20:28
赞一个..
作者: 熏陶 时间: 2015-4-7 21:10
大爱android...
作者: 小小的黑马 时间: 2015-4-7 21:22
支持阳哥!!!!!!!!!!!!
作者: 叶松ye 时间: 2015-4-7 21:26
辛苦了。
作者: 彬~ 时间: 2015-4-7 21:42
回富一下看看
作者: 牛兴亮 时间: 2015-4-8 08:32
新手,看不懂,先收藏把
作者: smartisan 时间: 2015-4-8 12:28
mark~~~~~~
作者: E.Young 时间: 2015-4-8 12:43
提前学习一下下哈
作者: ZQ822 时间: 2015-4-8 15:39
新手,看不懂
作者: suyuex 时间: 2015-4-8 17:59
mark~~~~~~~~
作者: lclxjzz 时间: 2015-4-8 18:11
mark````````````
作者: bianzhiguo6 时间: 2015-4-8 19:00
这个属于基础进就业班多久可以写出来这个东西?
作者: 黑马小符 时间: 2015-4-8 20:46
先收藏,说不定以后用得到哦
作者: qsmaxmin 时间: 2015-4-8 20:55
阳哥威武,一统江湖。。
作者: 忆墨 时间: 2015-4-8 21:02
先收藏,以后可能用的到哦
作者: 吴飞飞 时间: 2015-4-8 21:02
貌似不懂。先看下吧
作者: fankaiqiangnj 时间: 2015-4-8 21:12
看不懂,先收下
作者: 星河 时间: 2015-4-8 21:19
学习学习
作者: GeorgeLee 时间: 2015-4-8 21:21
我来学习,少说话~~
作者: 梦逆光377 时间: 2015-4-8 21:22
我来学习i 少说话
作者: Chenli 时间: 2015-4-8 21:28
,真的很不错!!...
作者: wyk 时间: 2015-4-8 21:45
还需努力啊
作者: 奔跑的孙莹 时间: 2015-4-8 21:47
嘿嘿 阳哥 你终于更新了
作者: zhaoqiankun 时间: 2015-4-8 21:53
环境什么的真 的很不错。
作者: 晨间星光 时间: 2015-4-8 21:56
努力学习中
作者: 杨大萌 时间: 2015-4-8 22:00
很给力!
作者: 涿郡丶二哥 时间: 2015-4-8 22:05
想发个帖子没找到地儿,还是努力学习去吧~
作者: hc5143 时间: 2015-4-8 22:24
我要看看看看看
作者: jayden 时间: 2015-4-8 23:06
好好学习,天天向上,争取以后也在论坛上发自己的作品,加油!
作者: li子文 时间: 2015-4-8 23:31
我又来了,哈哈哈,非常感谢楼主
作者: 黑马杜浔 时间: 2015-4-8 23:31
阳哥雄起!
作者: 黑马小成 时间: 2015-4-8 23:50
为了美好的未来,还没睡的各位黑马们,加油啦
作者: 郝聚德 时间: 2015-4-9 00:03
...为啥我晚上特别精神啊
作者: 屠赞华 时间: 2015-4-9 00:22
来了 有点晚了
作者: wkz_crystal 时间: 2015-4-9 00:22
呵呵,一起加油哈!
作者: 907888614 时间: 2015-4-9 00:48
一起加油哈!
作者: ︶︿︶︶︿︶ 时间: 2015-4-9 08:49
默默给个赞
作者: minliang 时间: 2015-4-9 09:36
等我啊!
作者: zhy934453950 时间: 2015-4-9 09:42
支持!!!
作者: msyx9871453 时间: 2015-4-9 09:44
:handshake:handshake
作者: 黑马小符 时间: 2015-4-9 09:48
好想去上海啊
作者: 梦想着 时间: 2015-4-9 10:27
上海好地方
作者: 根号三 时间: 2015-4-9 11:46
上海,好地方呀
作者: mono 时间: 2015-4-9 12:11
赞 一个
作者: itheima_llt 时间: 2015-4-9 12:45
赞赞赞!!
作者: silencer 时间: 2015-4-9 12:55
赞赞。。。
作者: 黑马小成 时间: 2015-4-9 13:46
一起加油
作者: 千玉屑 时间: 2015-4-9 15:45
一起加油
作者: lclxjzz 时间: 2015-4-9 16:06
大赞一个 学习学习··
作者: 黑马94那么拽 时间: 2015-4-9 17:26
Android会火几年啊?以后如果大数据火了转大数据容易吗?
作者: 仅此一抹心醉 时间: 2015-4-9 18:01
一起加油。为了未来!!!
作者: 剑雨飘扬 时间: 2015-4-9 18:34
感觉android内容好多啊。。
作者: Vampire-he 时间: 2015-4-9 19:34
一起加油。。。
作者: 907888614 时间: 2015-4-9 19:42
Android会火,? 搞起来
作者: 黑马小符 时间: 2015-4-9 20:18
搞起来必须的大家一起加油!
作者: hcy973747509 时间: 2015-4-9 20:27
hhhhhhhhhhhhhhhhhhhh
作者: jayden 时间: 2015-4-9 21:00
顶顶顶
作者: 飞翔的侠客604 时间: 2015-4-9 21:04
hhhhhhhhhhhhhhhhhhhh
作者: 天隙流光 时间: 2015-4-9 21:11
今天看到阳哥本人了 比照片帅!
作者: 初夜告白 时间: 2015-4-9 21:15
真的是帅啊~~~~~~~
作者: 进击的华仔 时间: 2015-4-9 21:34
真的是帅啊~~~~~~~~楼下保持队形
作者: bztf 时间: 2015-4-9 21:48
真的是帅啊~~~~~~~~~~
作者: xw_fting 时间: 2015-4-9 21:52
真的是帅啊~~~~~~~~
作者: GeorgeLee 时间: 2015-4-9 22:25
真的是帅啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: 薛大千 时间: 2015-4-9 22:39
激动人心呀不错,不错,不错
作者: 暗羽部落 时间: 2015-4-9 22:45
激动人心呀不错,不错,不错
作者: 364785953 时间: 2015-4-9 23:38
很好~~~~~~~~~~~~~~~~~~~~~~~~~
作者: 萍水相逢 时间: 2015-4-10 00:10
支持阳哥的笔记:lol,每天都盼望着更新
作者: sunshine丶朱 时间: 2015-4-10 16:01
没看完帖子,其实我想说阳哥能换张新的照片么:lol
作者: liurongzhi1991 时间: 2015-4-10 20:27
点赞······```````````
作者: 董恒瑞 时间: 2015-4-10 21:18
看不懂啊,先留着
作者: 留白 时间: 2015-4-10 22:07
太赞了!!!
作者: 努力 时间: 2015-4-10 22:46
这么好吗?长知识了
作者: 王震阳老师 时间: 2015-4-10 22:54
加油。
作者: 留白 时间: 2015-4-12 21:03
赞一个!!!
作者: z47057554 时间: 2015-4-13 00:21
谢谢分享:victory:
作者: Doug 时间: 2015-4-13 19:09
回帖领pdf
作者: 邹璐 时间: 2015-4-13 21:33
顶一个!!!!!!!
作者: lbl624 时间: 2015-4-13 22:17
谢谢分享啊,非常有用
作者: 月半歌声 时间: 2015-4-13 23:43
值得研究!牛!
作者: Jampo 时间: 2015-4-14 21:43
初学者表示还看不懂啦
作者: 小丸子 时间: 2015-4-14 22:16
markyixia~
作者: 鲁柯 时间: 2015-4-15 20:45
收藏了
作者: sinbad88 时间: 2015-4-15 21:31
感谢阳哥无私分享
作者: Hosing 时间: 2015-4-15 23:29
Thanks for Yang Ge's sharing notes!
作者: 王大侠 时间: 2015-4-17 22:48
顶顶顶顶!!!!
作者: 福禄娃 时间: 2015-4-18 10:35
多谢阳哥的分享~~~
作者: 彭春晓 时间: 2015-4-19 15:17
黑马Android教程-12通知&Fragment&反编译&NinePatch [修改]
作者: Catface 时间: 2015-4-28 10:25
前来学习一下
作者: 崔小可 时间: 2015-4-28 21:57
顶一下 嘿嘿 好好学习
作者: 乘梦而飞 时间: 2015-4-28 22:43
路过看看,赞一下吧
作者: caoyang521 时间: 2015-5-2 14:36
独乐乐不如众乐乐,阳哥威武,膜拜_ing
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |