此问题是 Android Fullscreen dialog confirmation and dismissive actions 的后续问题它使用如下图所示的深色主题,因此图标显示为白色。
我想以黑色显示“X”图标,因为我使用的是浅色主题。
另一个问题有一个可接受的解决方案,用于更改 ActionBar
图标,如下所示:
getSupportActionBar().setHomeAsUpIndicator(android.R.drawable.ic_menu_close_clear_cancel);
尽管我使用的是浅色主题,但它显示了一个白色的 X。
我似乎记得有一种方法可以使用提供的图标,并将其主题设置为在浅色背景上以黑色显示......?
最佳答案
以这种方式对库存图标进行着色已内置于 support-v4
库中,Chris Banes 在他的博客中对此进行了描述:
The Drawable tinting methods added in Lollipop are super useful for letting you dynamically tint assets. AppCompat had its own baked in implementation in the v21 support library and we’ve now extracted that into DrawableCompat in support-v4 for everyone to use.
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);
相关问题:
关于android - 全屏对话框关闭黑色图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32868442/