首页 > 解决方案 > 状态栏图标颜色不会随主题而改变

问题描述

在 Notification 中,我使用 drawable xml 作为setSmallIcon。当状态栏背景变为白色时,我的白色图标消失(实际上背景颜色和图标变为相同颜色)。但是,如果我将图像图标用作setSmallIcon,则状态栏图标的颜色将变为灰色。

当状态栏为白色时:

在此处输入图像描述

当状态栏非白色时:

在此处输入图像描述

代码:

builder.setSmallIcon(R.drawable.my_list,level); 

可绘制文件的一部分:

<item android:maxLevel="86">
    <layer-list>
        <item
            android:bottom="@dimen/bottom_margin"
            android:drawable="@drawable/ic_8"
            android:left="@dimen/ic_2_1_left"
            android:right="@dimen/ic_2_1_right"
            android:top="@dimen/upper_margin" />
        <item
            android:bottom="@dimen/bottom_margin"
            android:drawable="@drawable/ic_6"
            android:left="@dimen/ic_2_2_left"
            android:right="@dimen/ic_2_2_right"
            android:top="@dimen/upper_margin" />
    </layer-list>
</item>
<item android:maxLevel="87">
    <layer-list>
        <item
            android:bottom="@dimen/bottom_margin"
            android:drawable="@drawable/ic_8"
            android:left="@dimen/ic_2_1_left"
            android:right="@dimen/ic_2_1_right"
            android:top="@dimen/upper_margin" />
        <item
            android:bottom="@dimen/bottom_margin"
            android:drawable="@drawable/ic_7"
            android:left="@dimen/ic_2_2_left"
            android:right="@dimen/ic_2_2_right"
            android:top="@dimen/upper_margin" />
    </layer-list>
</item>
<item android:maxLevel="88">
    <layer-list>
        <item
            android:bottom="@dimen/bottom_margin"
            android:drawable="@drawable/ic_8"
            android:left="@dimen/ic_2_1_left"
            android:right="@dimen/ic_2_1_right"
            android:top="@dimen/upper_margin" />
        <item
            android:bottom="@dimen/bottom_margin"
            android:drawable="@drawable/ic_8"
            android:left="@dimen/ic_2_2_left"
            android:right="@dimen/ic_2_2_right"
            android:top="@dimen/upper_margin" />
    </layer-list>
</item>

如何使用状态栏背景(白色)更改 xml 可绘制图标颜色?

对不起,我的英语不好。

标签: androidnotificationsdrawablestatusbarstatus

解决方案


在您的活动中的 super.OnCreate() 之前....

添加以下代码行..

setTheme(R.style.AppTheme);

推荐阅读