在通知中,我使用了可绘制的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可绘制图标的颜色?
对不起,我的英语不好。
答案 0 :(得分:0)
尝试一下:
在“活动”中设置可绘制对象后,写:
getWindow().setStatusBarColor(Color.parseColor(your_color_in_hex));
查看它是否有效并进行更新。
答案 1 :(得分:0)
在您的活动中的super.OnCreate()之前。...
添加以下代码行。
setTheme(R.style.AppTheme);
答案 2 :(得分:0)
从Android 5.0开始,准则如下:
通知图标必须为白色。
即使不是,系统也只会考虑图标的Alpha通道,将其渲染为白色。
一些有用的链接:-
Notification bar icon turns white in Android 5 Lollipop
希望有帮助。