黑马程序员技术交流社区

标题: 【阳哥专栏】黑马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
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什么是Fragment
Fragment就是小型的Activity,它是在Android3.0时出现的。
Fragment是表现Activity中UI的一个行为或者一部分。可以把fragment想象成activity的一个模块化区域,有它自己的生命周期,接收属于它自己的输入事件,并且可以在activity运行期间添加和删除(有点像一个可以在不同的activity中重用的“子Activity”)。
Fragment必须被嵌入到一个activity中。它们的生命周期直接受其宿主activity的生命周期影响。当一个activity正在运行时,就可以独立地操作每一个Fragment,比如添加或删除它们。
Fragment可以定义自己的布局、生命周期回调方法,因此可以将fragment重用到多个activity中,因此可以根据不同的屏幕尺寸或者使用场合改变fragment组合。
4.2如何创建一个Fragment
fragment第一次绘制它的用户界面的时候,系统会调用onCreateView()方法。为了绘制fragment的UI,此方法必须返回一个作为fragment布局的根的view。如果fragment不提供UI,可以返回null。
4.3如何将Fragment添加到Activity
Activity必须在清单文件中进行声明,但是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跟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步:
4.7 Fragment之间的通信案例
案例:创建一个用于显示选项卡的Fragment和一个用于显示内容的Fragment,当
选项卡切换时,使内容的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-8 23:50
为了美好的未来,还没睡的各位黑马们,加油啦

一起加油

作者: 千玉屑    时间: 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-10 22:46
这么好吗?长知识了

加油。
作者: 留白    时间: 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