如何在 Android 中更改 Drawable 的颜色?

2024-05-23

我正在开发一个 Android 应用程序,并且我有一个从源图像加载的可绘制对象。在此图像上,我想将所有白色像素转换为不同的颜色(例如蓝色),然后缓存生成的 Drawable 对象,以便稍后使用它。

举例来说,假设我有一个 20x20 PNG 文件,中间有一个白色圆圈,圆圈外的所有内容都是透明的。将白色圆圈变成蓝色并缓存结果的最佳方法是什么?如果我想使用该源图像创建几个新的可绘制对象(例如蓝色、红色、绿色、橙色等),答案是否会改变?

我猜想我会想以某种方式使用 ColorMatrix,但我不确定如何使用。


我认为你实际上可以使用Drawable.setColorFilter( 0xffff0000, Mode.MULTIPLY )。这会将白色像素设置为红色,但我认为这不会影响透明像素。

See Drawable#setColorFilter http://developer.android.com/reference/android/graphics/drawable/Drawable.html#setColorFilter%28int,%20android.graphics.PorterDuff.Mode%29

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 中更改 Drawable 的颜色? 的相关文章

随机推荐