我有一个外部透明的 png 文件,用作我 UI 中某处的图标图像;我希望用户能够在运行时为其指定不同的颜色(如左下图所示,假设我有 android 图标);或不同的“背景”图像(右下方的图像,假设图标是一个结合了圆形和三角形的形状)。我读了这个post它使用 ColorFilter 将所有白色像素设置为代码中的另一种颜色;但它不允许我更改图标的“背景”。我想我可能可以用 ClipDrawable 做到这一点,但我不知道怎么做。
最佳答案
如果你使用ImageView
,你还可以设置图像的来源(android:src
),也可以设置图像的背景(android:background
)。因此,如果您的图像具有透明区域或具有 alpha channel 的区域,则背景颜色将用于这些像素。
然后背景颜色可以动态改变。您可以使用这种方法吗?
imageView.setBackgroundColor(0x00FF0000); // red
关于Android可绘制资源: Dynamically change an icon color/"background"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374767/