android - 全屏对话框关闭黑色图标

标签 android material-design

此问题是 Android Fullscreen dialog confirmation and dismissive actions 的后续问题它使用如下图所示的深色主题,因此图标显示为白色。

enter image description here


我想以黑色显示“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/

相关文章:

android - 工具栏重叠在状态栏下方

Android CardView 圆角半径不适用于 Kitkat

Android - 尝试添加图像时会创建一个空白图像

java - XML 中默认条目的 Android Spinner 项目布局

java - 安卓蓝牙连接

android - 如何在 CoordinatorLayout 滚动时为顶部和底部工具栏(或任何其他 View )设置动画进入/退出屏幕?

java - Android 阶段性进展

android - 从我的 Android 应用程序上传 Vimeo 视频

c# - WPF DatePicker 没有使用 Material Design 的样式

android - Material Design 按钮看起来更平滑且阴影更多