当前位置:  开发笔记 > Android > 正文

在android中动态设置状态栏颜色

如何解决《在android中动态设置状态栏颜色》经验,为你挑选了2个好方法。

如何为应用程序动态设置状态栏颜色,使用视图寻呼机,同时滑动(水平)状态栏颜色和标题栏和按钮应更改颜色.根据我的代码标题和按钮颜色完美变化,但问题是状态栏颜色从数组列表中获取下一个颜色.如何解决这个问题任何人都可以帮助我.这是我的代码

 private int[] colors = new int[]{0xffffd200, 0xff37beb7, 0xff00ccff, 0xff8585c1, 0xfff2a03c, 0xff2a80b9, 0xfff15972,
        0xffe9776c, 0xff9dcc96,0xff76c069};

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Window window = ((Activity) context).getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        int coloring = position % colors.length;
        int new_color = colors[coloring];
        window.setStatusBarColor(new_color);
        title_bar.setBackgroundColor(new_color);
        set_share.setBackgroundColor(new_color);

    }
    else{

        int color = position % colors.length;
        itemView.setBackgroundColor(colors[color]);
        title_bar.setBackgroundColor(colors[color]);
        set_share.setBackgroundColor(colors[color]);
    }

小智.. 13

要更改状态栏颜色,请使用setStatusBarColor(int color).根据javadoc,我们还需要在窗口上设置一些标志.

工作代码片段:

Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(activity.getResources().getColor(R.color.example_color));

这取自以下参考: 如何更改状态栏颜色以匹配棒棒糖中的应用程序?[Android]产品



1> 小智..:

要更改状态栏颜色,请使用setStatusBarColor(int color).根据javadoc,我们还需要在窗口上设置一些标志.

工作代码片段:

Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(activity.getResources().getColor(R.color.example_color));

这取自以下参考: 如何更改状态栏颜色以匹配棒棒糖中的应用程序?[Android]产品



2> aravindkanna..:

进入状态栏颜色,您只能将其添加到API级别超过21的设备.对于满足此条件的设备,您可以动态更改StatusBar颜色,如下所示.

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        window.setStatusBarColor(getResources().getColor(R.color.Statusbar));
    }

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有