当前位置: 移动技术网 > IT编程>移动开发>Android > Android实现通知栏透明的方法

Android实现通知栏透明的方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

纯情罗曼史在线漫画,红尘尽处叹飘零,追梦vpn

这个特性是andorid4.4支持的,最少要api19才可以使用,也就是说如果android的机子是低于4.4,沉浸通知栏是没有效果的。下面介绍一下使用的方法,非常得简单。

 /**
   * 设置通知栏 这个方法在oncreate()实现,如果是在父类的oncreate()中添加,即使所有继承了该父类都会有沉浸通知栏。
   */
public void initsystembar() {
    if (build.version.sdk_int >= build.version_codes.kitkat) {
      settranslucentstatus(true);
      systembartintmanager tintmanager = new systembartintmanager(this);
      tintmanager.setstatusbartintenabled(true);
      tintmanager.setstatusbartintresource(r.color.red);
    }
  }
  /**
   * 设置通知栏的状态
   * @param on
   */
  @suppresslint("inlinedapi") 
  private void settranslucentstatus(boolean on) { 
    window win = this.getwindow(); 
    windowmanager.layoutparams winparams = win.getattributes(); 
    final int bits = windowmanager.layoutparams.flag_translucent_status; 
    if (on) { 
      winparams.flags |= bits; 
    } else { 
      winparams.flags &= ~bits; 
    } 
    win.setattributes(winparams); 
  }

在最后在布局文件中添加:android:fitssystemwindows="true"

即可实现。

android5.0全透明状态栏效果,具体实例代码如下所示:

实现上述效果的代码如下:

public class mainactivity extends activity {
  @suppresslint("inlinedapi")
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    getwindow().requestfeature(window.feature_no_title);
    if(version.sdk_int >= version_codes.lollipop) {
      window window = getwindow();
      window.clearflags(windowmanager.layoutparams.flag_translucent_status
          | windowmanager.layoutparams.flag_translucent_navigation);
      window.getdecorview().setsystemuivisibility(view.system_ui_flag_layout_fullscreen
              | view.system_ui_flag_layout_hide_navigation
              | view.system_ui_flag_layout_stable);
      window.addflags(windowmanager.layoutparams.flag_draws_system_bar_backgrounds);
      window.setstatusbarcolor(color.transparent);
      window.setnavigationbarcolor(color.transparent);
    }
    setcontentview(r.layout.activity_main);
  }
}

以上代码写的不好,还请各位大侠多多提出,同时希望本文分享对大家有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网