我有一个透明的png文件,在我的UI中某处用作图标图像;我希望用户能够在运行时为它指定不同的颜色(如左下图中所示,假设我有android图标);或者不同的“背景”图像(右下方的图像,假设图标是组合圆形和三角形的形状)。我读了这个post,它使用ColorFilter将所有白色像素设置为代码中的另一种颜色;但它不允许我改变图标的“背景”。我想我可能可以用ClipDrawable做到这一点,但我无法弄清楚如何。
答案 0 :(得分:1)
如果您使用ImageView
,则还可以设置图像源(android:src
),还可以设置图像的背景(android:background
)。因此,如果您的图像具有透明区域或具有Alpha通道的区域,则背景颜色将用于这些像素。
然后可以动态更改背景颜色。你能用这种方法吗?
imageView.setBackgroundColor(0x00FF0000); // red