状态栏图标的颜色不会随主题改变

时间:2018-08-24 15:48:50

标签: android notifications drawable statusbar status

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

状态栏为白色时:

enter image description here

状态栏为非白色时:

enter image description here

代码:

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可绘制图标的颜色?

对不起,我的英语不好。

3 个答案:

答案 0 :(得分:0)

尝试一下:

在“活动”中设置可绘制对象后,写:

getWindow().setStatusBarColor(Color.parseColor(your_color_in_hex));

查看它是否有效并进行更新。

答案 1 :(得分:0)

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

添加以下代码行。

setTheme(R.style.AppTheme);

答案 2 :(得分:0)

从Android 5.0开始,准则如下:

  

通知图标必须为白色。

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

一些有用的链接:-

Android statusbar icons color

Notification bar icon turns white in Android 5 Lollipop

希望有帮助。