android 4.0 StatusBar Service
来源:互联网 发布:发发棋牌源码 编辑:程序博客网 时间:2024/05/22 00:14
重要的属性值:StatusBarView mStatusBarView;这个就是我们看到的StatusBar的View。
NotificationCallbacks mNotificationCallbacks; 用于NotificationManagerServi
HashMap<IBinder,StatusBarIcon> mIconMap = new HashMap<IBinder,StatusBarIcon>(); 保存更新或者增加图标的Client端引用
ArrayList<StatusBarIcon> mIconList = new ArrayList<StatusBarIcon>(); 现在在显示中的所有图标的引用
LinearLayout mIcons;
IconMerger mNotificationIcons
ExpandedView mExpandedView;
boolean mExpanded;
DateView mDateView;
mStatusBarView就是StatusBar所代表的View,那么查看它的代码,看它处理点击的方法。
它属性变量保存了StatusBarService的引用,它的点击处理函数onTouchEvent()和onInterceptTouchEvent()都会调用到StatusBarService 类中的interceptTouchEvent()方法。
当我们点击StatusBar时,会先走到onInterceptTouchEvent()这个函数,而且这个函数只会在第一次走到,然后会走到onTouchEvent()方法,这个方法每收到一个TouchEvent()就会走到,因此会走到多次。
函数onInterceptTouchEvent()的处理:
1、调用到StatusBarService中的interceptTouchEvent(),在这里又会走到event.getAction() == MotionEvent.ACTION_DOWN 分支,在分支中,由于mExpanded == false且y < hitSize 会继续调用prepareTracking(y)。
2、函数prepareTracking()处理:这里由于mExpanded == false 所以会向H中发送MSG_ANIMATE_REVEAL消息,进入StatusBarService自己的消息循环。执行doRevealAnimation()函数。
3、函数doRevealAnimation()处理:这个实现的功能很简单,就是在TrackingView(就是点击时StatusBar下出现的View)还没有完全显示出来的时候,通过动画的方式,一点一点的将TrackingView显示出来。
当我们手指离开时调用顺序如下:
1、StatusBarView:onTouchEvent(),此时Action != MotionEvent.ACTION_DOWN走到 StatusBarService:interceptTouchEvent();
2、interceptTouchEvent()中会走到分支 else if (mTracking);
3、由于ACTION_UP 所以会调用performFling(),在这里会向Handler发送 MSG_ANIMATE 消息,然后进入函数doAnimation()。
4、在doAnimation()由于mAnimY < mStatusBarView.getHeight()分支成立,会继续调用updateExpandedViewPos(0)和performCollapse();
5、在performCollapse()中,通过mTrackingView.setVisibility(View.GONE) 实现了 让mTrackingView的隐藏,其实这个函数还实现了其他的View的隐藏,比如我们点击后进行拖动所出现的其他View。
- android 4.0 StatusBar Service
- android statusbar service
- android 4.0 修改statusbar
- android 4.0 StatusBar 架构
- android 4.0 StatusBar 架构
- systemui statusbar service 小结
- statusbar service简介
- Android StatusBar
- android statusbar 的修改
- Android StatusBar 更改
- android 2.3 修改 statusbar
- Android的StatusBar分析
- Android 隐藏StatusBar
- Android 2.3 修改 statusbar
- Android 2.3 修改 statusbar
- android statusbar 的修改
- Android StatusBar 更改
- Android获取StatusBar高度
- 软件成熟度指标(SMI)
- CKEDITOR富文本编辑器+AJAX+JQUERY+ListView综合应用
- 《重构》C#版实现(二)抽取AmountFor方法
- android分别在activity和service中获取屏幕分辨率
- static_cast、dynamic_cast reinterpret_cast和const_cast
- android 4.0 StatusBar Service
- java对象转换成xml,javascript对象字符串, xml转换成java对象,支持任意类型,支持深层转换
- X是协议,不是具体的某个软件,
- 加载类错误 com.sun.tools.Main
- android 4.0 StatusBar 架构
- Android framework系统默认设置修改
- 读书之《Linux环境下C编程指南》
- MySQL字符集设置
- ibm 在 UNIX 和 Linux 系统上捕获屏幕快照和程序交互: 第 2 部分,简单的图形化屏幕和窗口捕获