我希望能够通过编程将图标的颜色设置为不同的颜色,以便使用相同的图标(即矢量
),就像我们通过android:tint
属性一样。
这是设置AlertDialog
图标的builder
:
builder.setIcon(android.R.drawable.ic_dialog_info);
有没有办法做到这一点?如果我们只想使用不同的颜色,是否需要再次创建相同的图标?
我希望能够通过编程将图标的颜色设置为不同的颜色,以便使用相同的图标(即矢量
),就像我们通过android:tint
属性一样。
这是设置AlertDialog
图标的builder
:
builder.setIcon(android.R.drawable.ic_dialog_info);
有没有办法做到这一点?如果我们只想使用不同的颜色,是否需要再次创建相同的图标?
ImageView
并设置ColorFilter
。尝试下面的代码。看看是否按预期工作。 AlertDialog.Builder builder = new AlertDialog.Builder(DemoActivity.this);
builder.setMessage("Message");
builder.setTitle("Title");
builder.setIcon(android.R.drawable.ic_dialog_info);
AlertDialog dialog = builder.create();
dialog.show();
ImageView imageView = dialog.findViewById(android.R.id.icon);
if (imageView != null)
imageView.setColorFilter(Color.BLUE, android.graphics.PorterDuff.Mode.SRC_IN);
BLUE
作为颜色时,它可以正常工作。但是当我尝试使用在我的colors.xml
中定义的自定义颜色(#fbcb97
)时,显示的颜色与预期的不同。 - talha06#838093
。在API Level 26
上进行测试。 - talha06