Android 可绘制资源:动态更改图标颜色/“背景”?
我有一个外部透明的 png 文件,用作 UI 中某处的图标图像;我希望用户能够在运行时为其指定不同的颜色(如下左下图所示,假设我有 android 图标);或不同的“背景”图像(右下图,假设图标是圆形和三角形组合的形状)。我读了这篇帖子,它使用 ColorFilter 设置所有将白色像素转换为代码中的另一种颜色;但它不允许我更改图标的“背景”。我想我可能可以用 ClipDrawable 来做到这一点,但我不知道如何做。
I have a png file that is transparent outside which is used as an icon image somewhere in my UI; I'd like for the user to be able to specify a different color for it at runtime (as in the image on the left below, assuming I have the android icon); or a different "background" image (Image on the right below, suppose the icon is a shape combining a circle and a triangle). I read this post which used ColorFilter to set all the white color pixels to another color in code; but it doesn't allow me to change the "background" of the icon. I guess I probably can do this with a ClipDrawable but I can't figure out how.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用
ImageView
,您还可以设置图像的来源 (android:src
) 以及图像的背景 (android:background
) 。因此,如果您的图像具有透明区域或具有 Alpha 通道的区域,则背景颜色将用于这些像素。然后背景颜色可以动态改变。你能使用这个方法吗?
If you use
ImageView
, you can set also the source of image (android:src
) but also background for the image (android:background
). So if your image has a transparent region, or region with alpha channel, the background color will be used for these pixels.The background color then can be changed dynamically. Can you use this approach?