此问题是对Android Fullscreen dialog confirmation and dismissive actions的跟进,后者根据下图使用黑暗主题,因此图标以白色显示。
我想显示" X"黑色图标,因为我使用的是光主题。
另一个问题有一个可接受的解决方案,用于更改ActionBar
图标,如下所示:
getSupportActionBar().setHomeAsUpIndicator(android.R.drawable.ic_menu_close_clear_cancel);
即使我使用的是浅色主题,也会显示白色X.
我似乎记得有一种方法可以使用提供的图标,并将其设为主题,以便在浅色背景下以黑色显示......?
答案 0 :(得分:3)
以这种方式着色股票图标的颜色内置于support-v4
库中,并由Chris Banes在他的博客中描述:
Lollipop中添加的Drawable着色方法非常有用 让你动态着色资产。 AppCompat有自己的烘焙 在v21支持库中实现,我们现在已经提取了它 在support-v4中加入DrawableCompat,供大家使用。
Drawable drawable = ...;
// Wrap the drawable so that future tinting calls work
// on pre-v21 devices. Always use the returned drawable.
drawable = DrawableCompat.wrap(drawable);
// We can now set a tint
DrawableCompat.setTint(drawable, Color.RED);
// ...or a tint list
DrawableCompat.setTintList(drawable, myColorStateList);
// ...and a different tint mode
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);
这使我的确切代码非常简单:
// set X close icon in black
Drawable drawable = getResources()
.getDrawable(R.drawable.abc_ic_clear_mtrl_alpha);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable, Color.BLACK);
getSupportActionBar().setHomeAsUpIndicator(drawable);
相关问题: