a) 代码在系统中的位置
status bar 的相关代码位于:frameworks/base/services/java/com/android/server/status。
其中StatusBarPolicy类主要负责接收action动作,其他一些核心操作全部位于StatusBarService类里面
c) 资源位置:
Status bar 的相关资源位于:frameworks/base/core/res/res
3. 简单修改
对status bar 的修改主要包括status bar的背景颜色、icon、字体颜色、icon顺序等。
a) 背景颜色:
背景颜色由frameworks/base/core/res/res/drawable-mdpi/statusbar_background.9.png决定,原始颜色是灰色,我们修改为黑色。
c) 字体颜色:
由frameworks/base/services/java/com/android/server/status/ StatusBarIcon类中的代码控制,原始代码为:t.setTextColor(0xff000000),即黑色,我们将其更改为白色:t.setTextColor(0xffffffff)。
d) icon顺序:
由frameworks/base/core/res/res/values/array里面的资源文件控制
修改status bar的高度。
既然要在status bar上增加那么几个按钮,当然是想要使用触摸操作的,android自带的status bar高度太小,不适用。对于7寸屏的话,50pixel的高度应该是差不多了。
修改高度很简单,如我转的shinning mm的博文。
修改frameworks/base/core/res/res/values/dimens.xml的status_bar_height属性
<!-- Height of the status bar -->
<dimen name="status_bar_height">50dip</dimen>
当然,如果相改title的高度,可以修改 Frameworks/base/core/res/res/values/themes.xml中的Window attributes的windowTitleSize值,不过我觉得没必要,改了反倒不好看了 :)
添加动态效果,就是触摸按下hilight,松开或者移出后恢复的动作。这一块,我是通过修改 frameworks/base/services/java/com/android/server/status/StatusBarView.java实现的。
三,添加相应事件
1. 添加新的intent
首先是新增一条intent, 在framework/base/core/java/android/content/intent.java中增加