全屏对话框关闭图标为黑色
Posted
技术标签:
【中文标题】全屏对话框关闭图标为黑色【英文标题】:Fullscreen Dialog dismiss icon in black 【发布时间】:2015-09-30 14:15:48 【问题描述】:这个问题是android Fullscreen dialog confirmation and dismissive actions 的后续问题,它使用如下图所示的深色主题,因此图标显示为白色。
我想将“X”图标显示为黑色,因为我使用的是浅色主题。
另一个问题有一个公认的解决方案来更改ActionBar
图标,如下所示:
getSupportActionBar().setHomeAsUpIndicator(android.R.drawable.ic_menu_close_clear_cancel);
即使我使用的是浅色主题,它也会显示一个白色 X。
我似乎记得有一种方法可以使用提供的图标,并将其主题化为在浅色背景上以黑色显示...?
【问题讨论】:
你为什么不使用黑色/深色“X”图像而不是 我想尽可能使用系统默认值。 (如果可能的话)。然后,当新样式存在且图形略有不同时,我无需更新应用程序。 【参考方案1】: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);
相关问题:
DrawableCompat tinting does not work on pre-Lollipop Android: Tint using DrawableCompat【讨论】:
以上是关于全屏对话框关闭图标为黑色的主要内容,如果未能解决你的问题,请参考以下文章
安卓导航组件。显示带有从箭头到十字的变形导航图标的全屏对话框
怎样用MFC去掉打开图像时窗口的最大化最小化关闭按钮,然后让图像全屏?
使用 DialogFragment 和导航库时将对话框显示为全屏或对话框