Android可绘制资源:动态更改图标颜色;背景;?

Android可绘制资源:动态更改图标颜色;背景;?,android,resources,image-manipulation,drawable,Android,Resources,Image Manipulation,Drawable,我有一个png文件,外部是透明的,在我的UI中用作图标图像;我希望用户能够在运行时为其指定不同的颜色(如下图所示,假设我有android图标);或者一个不同的“背景”图像(右下方的图像,假设图标是一个结合了圆形和三角形的形状)。我读过这篇文章,它使用ColorFilter将所有白色像素设置为代码中的另一种颜色;但它不允许我更改图标的“背景”。我想我可能可以用ClipDrawable做这个,但我不知道怎么做 如果使用ImageView,您还可以设置图像的来源(android:src)以及图像的背

我有一个png文件,外部是透明的,在我的UI中用作图标图像;我希望用户能够在运行时为其指定不同的颜色(如下图所示,假设我有android图标);或者一个不同的“背景”图像(右下方的图像,假设图标是一个结合了圆形和三角形的形状)。我读过这篇文章,它使用ColorFilter将所有白色像素设置为代码中的另一种颜色;但它不允许我更改图标的“背景”。我想我可能可以用ClipDrawable做这个,但我不知道怎么做


如果使用
ImageView
,您还可以设置图像的来源(
android:src
)以及图像的背景(
android:background
)。因此,如果您的图像具有透明区域,或具有alpha通道的区域,则这些像素将使用背景色

然后可以动态更改背景颜色。你能用这种方法吗

    imageView.setBackgroundColor(0x00FF0000); // red

对不起,也许我不明白。但是为什么解决方案不仅仅是为版面设置背景色,用透明区域包含图标图像?@teepee,我想那是因为我不知道如何做你刚才说的。谢谢你的提示。您能否分享部分代码,了解如何将带有alpha通道的.png设置为imageView?我想可能是我设置了错误的方式,或者是以错误的方式生成了.png,但背景从未显示出来。我只是在XML布局中将png图像定义为:。在photoshop或其他编辑器中检查你的png图像,如果透明颜色真的是透明的,你可以将其与android图标进行比较。pngI我想我也尝试了你刚才所说的,结果图像只是一个红色框,没有被png剪掉。是的,我选中了,我的png有一个透明的背景。很抱歉,生成的图像显示在红色框的顶部,而不是剪切红色框。哦,现在我明白了,你想要实现的是:)