[英]Why is my Android Drawable showing up with a color on top of it?
我正在开发一个简单的日常任务报告 Android Studio 应用程序作为我工作的 IT 部门的内部工具。 我正在努力使它尽可能提供信息和易于使用,添加用户友好的 UI。 为此,我使用 AlertDialog 与用户交互,例如显示信息、警告和错误。 当我尝试为 AlertDialog 设置一个图标时,问题就来了。 它在技术上是可行的,但它显示一个白色图标,如下所示:屏幕截图
当它应该看起来像这样时:图标
我相信 Android 12 希望我使用可绘制矢量,因为当我使用ic_launcher_foreground
可绘制文件时,它显示得很好。 我只是想知道是否有任何方法可以覆盖它,以便我可以显示纯图像文件而不是可绘制矢量。 (我认为这是问题所在是错误的。)我试图找到有关此特定问题的文档或任何帖子/问题,但我认为我一直在寻找错误的地方。
这是构建和显示我的 AlertDialog (Java) 的代码:
private void showGpsDialog(){
final String dialog_title = getResources().getString(R.string.dialog_important_title);
final String dialog_message = getResources().getString(R.string.gps_disabled_dialog_message);
final String dialog_positive = getResources().getString(R.string.dialog_understood);
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AlertDialogRegular);
builder.setMessage(dialog_message)
.setPositiveButton(dialog_positive, (dialogInterface, i) -> {
})
.setTitle(dialog_title)
.setIcon(R.drawable.ic_info_drawable);
AlertDialog dialog = builder.create();
dialog.show();
}
这是可绘制图标 xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item
android:width="15dp"
android:height="15dp"
android:gravity="center"
>
<bitmap android:src="@drawable/info_icon"/>
</item>
</layer-list>
事实证明我犯了一个巨大的,可能是愚蠢但悄无声息的错误。 我在themes.xml文件中使用了一个自定义主题,并且我有这一行<item name="tint">@color/white</item>
这使得我所有的可绘制对象在图像之上都应该是白色的在那里,但我只有在尝试显示 ImageView 时才注意到,并且出现了与 AlertDialog 相同的问题。 我刚刚删除了那条线,因为我发现我不需要它,这解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.