Android:是不是可以更改 Android Lollipop 状态栏中图标的颜色

Posted

技术标签:

【中文标题】Android:是不是可以更改 Android Lollipop 状态栏中图标的颜色【英文标题】:Android: Is it possible to change the color of icons in status bar in Android LollipopAndroid:是否可以更改 Android Lollipop 状态栏中图标的颜色 【发布时间】:2016-04-28 01:58:54 【问题描述】:

我有以下改变状态栏颜色的功能:

   public static void colorStatusBar(Window window, Context context, boolean transparent) 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        if(transparent)
            window.setStatusBarColor(context.getResources().getColor(android.R.color.transparent));
        else
            window.setStatusBarColor(context.getResources().getColor(R.color.timeline_unselected));
        
    

我的问题是,它改变了状态栏的颜色,而不是图标的颜色,这使得它们几乎不可见。 示例:http://postimg.org/image/ah01hzxdz/ 是否也可以更改图标颜色?

【问题讨论】:

【参考方案1】:

是的,可以将其更改为灰色(无自定义颜色),但这仅适用于 API 23 及更高版本,您只需将其添加到您的 values-v23/styles.xml 到您的主题声明中。

<item name="android:windowLightStatusBar">true</item>

【讨论】:

【参考方案2】:

自从 Lollipop 之后就没有了。从 Android 5.0 开始,指南说:

通知图标必须全白。 即使不是,系统也只会考虑图标的 Alpha 通道,将其渲染为白色

在 Lollipop 上显示彩色图标的唯一方法是将 targetSdkVersion 降低到

如果您仍然决定需要彩色图标,则可以使用新 v4 支持库中的 DrawableCompat.setTint 方法。

【讨论】:

如果我的 targetSdkVersion 低于 21 并且我想让我的蓝色图标变成白色怎么办。我需要获得白色图标还是可以在通知生成器中以某种方式设置色调?

以上是关于Android:是不是可以更改 Android Lollipop 状态栏中图标的颜色的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中,是不是可以更改相机(从前到后)并仍然继续录制?

在 Android 中,是不是可以更改相机(从前到后)并仍然继续录制?

创建项目后是不是可以在android studio中更改公司域名?

如何评价 Android L

Android Studio 认为我正在为 API Level 1 而不是 Android L 构建

更改时间选择器的文本颜色 [android]