2015-06-24 58 views
0

假设我在Android中有一个ShapeDrawable。不是位图。我想用另一种颜色动态替换它中的单色(笔画颜色)。新的期望颜色在设计时不知道,不能放入可绘制的资源中。将ShapeDrawable中的单色(黑色)替换为Android中的另一种颜色

例如,从第1张去(其中黑色表示欲替换的颜色,和方格背景是未包括的形状轮廓的背景):

picture 1

到图像2,其中红色是颜色欲:

picture 2

我可以根据需要使用的α-掩模构建形状 - 即具有白色或黑色的颜色透明,如果necessa例如,或者使轮廓变为绿色。最终结果中白色填充颜色必须保持白色。

是否可以通过标准的彩色滤镜--ColorMatrixColorFilter或PorterDuffColorFilter来实现? 如果是这样,我很难搞清楚具体的过滤器。 我假定自定义ColorFilter是不可能的。

回答

2

更改颜色在具有要设置成任意颜色的黑色边框的具体情况,以及白色的内饰,您可以使用ADD模式PorterDuff过滤器。由于它饱和,它不会对白色区域产生任何影响,并且由于黑色为零,所以添加颜色将有效地将所有黑色区域设置为该颜色。

例如将其设置为红色:

drawable.setColorFilter(0x00ff0000, PorterDuff.Mode.ADD); 
+0

是的,这样做,谢谢。 – Cozzamara

0

本教程可能会有帮助。根据这一点,您可以用所需的颜色替换图像的白色部分。绘制图标编程http://takeoffandroid.com/uncategorized/changing-color-of-drawable-icon-programmatically/

相关问题