设置渐变色 StatusBar

SystemBarTintManager 实现很简单,就几行代码:

private void tintStatusBar(@NonNull Activity activity, @ColorInt int startColor, @ColorInt int endColor) {
    Window window = activity.getWindow();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
      window.setStatusBarColor(Color.TRANSPARENT);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }
    GradientDrawable drawable =
        new GradientDrawable(LEFT_RIGHT, new int[] { startColor, endColor });

    final SystemBarTintManager tintManager = new SystemBarTintManager(this);
    // enable status bar tint
    tintManager.setStatusBarTintEnabled(true);
    tintManager.setNavigationBarTintEnabled(false);
    tintManager.setTintDrawable(drawable);
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,006评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 我也想做一個狠心的人,我也想變成我厭惡的人 這樣我或許能過的比現在好很多 擁有更多 可怎奈我有一顆琉璃心,我想要那...
    乙木々阅读 215评论 0 0
  • 为了能够让自己孩子的成绩在有限的时间得到最大的提升,很多家长选择了给孩子找一对一的老师或者是家教,帮助孩子在学习方...
    gaosijiaoyu阅读 546评论 0 0