一、透明背景
4.4以下平台:
Original resource:
Target:
方法:
1> 首先屏蔽PhoneWindowManager.java的public int getSystemDecorRectLw(Rect systemRect){
。。。。。。
// if (mStatusBar != null) return mStatusBar.getSurfaceLayer();
// if (mNavigationBar != null) return mNavigationBar.getSurfaceLayer();
。。。。。。
}
分析:
如果两者中不屏蔽 if (mStatusBar != null) return mStatusBar.getSurfaceLayer();那么通知栏无任何效果
如果两者中不屏蔽 if (mNavigationBar != null) return mNavigationBar.getSurfaceLayer();会导致透明无效果,但在状态栏隐藏或者出现时时(如手电筒应用全屏或退出,相机应用全屏或退出)会闪过透明状态,另外下拉通知栏会出现如下现象:
在PhoneWindowManager.java中mStatusBar在public int prepareAddWindowLw(。。。)中赋值;
2> 接着更改状态栏布局msim_status_bar.xml背景:可将drawable形式的“status_bar_background"指向一张透明图,亦可指向透明颜色#00000000
二、有色背景
4.3
1:上状态条布局背景需用图形:status_bar_backgroung.png
2:解锁界面:
3:下拉通知栏界面:
下蓝通知栏颜色设为红色:<color name="notification_panel_scrim_color">#ff0000</color>
原色值:<color name="notification_panel_scrim_color">#B0000000</color>
4:下拉通知栏向上拖动或者向下拖动中背景红色渐变:
渐变控制在PhoneStatusBarView.java的panelExpansionChanged(PanelView panel, float frac)方法里。
问题:上状态条怎样设置为透明色
tip:上状态条设置为其他颜色(非透明色)时只需在上状态条总布局msim_status_bar.xml里改变总布局的background。