Android_5.0定制--------在Launcher界面改变SystemUI中的NavigationBar和StatusBar背景颜色

SystemUI中的状态栏和导航栏在源码中的布局分别是:

     状态栏:super_status_bar.xml,源码路径:\frameworks\base\packages\SystemUI\res\layout\super_status_bar.xml

     导航栏:navigation_bar.xml,源码路径:\frameworks\base\packages\SystemUI\res\layout\navigation_bar.xml

StatusBar是怎样添加到屏幕上去的(NavigationBar也差不多,就记录一个StatusBar):

\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBar.java中有一个StatusBarWindowView对象和StatusBarWindowManager对象。  其中两个对象的主要作用分别是:

          StatusBarWindowView:通过View的inflate的静态方法将super_status_bar.xml实例化StatusBarWindowView的一个实例。(解析布文件)

          StatusBarWindowManager:StatusBarWindowManager中存在一个WindowManager,先通过StatusBarWindowManager的add方法将StatusBarWindowView传递给WindowManager,然后WindowManager通过addView方法将View添加到窗口上。(将View添加到窗口,也就是屏幕上)


上面就是大致StatusBar的添加到屏幕的过程。

下面说一下怎么设置StatusBar背景颜色:

我们是要在Launcher界面修改StatusBar背景颜色,Launcher也继承自Activity。一般情况下,Android系统给出了接口Window类里面有setNavigationBarColor和setStatusBarColor两个方法去设置状态栏和导航栏的背景颜色。Launcher的主题