statusbar_background

一、透明背景

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。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值