假设我有一个ShapeDrawable在Android中。它不是位图。我想要动态地将其中的单一颜色(描边颜色)替换为另一种颜色。新的期望颜色在设计时未知,不能放入可绘制资源。
例如,从图片1(黑色代表我想要替换的颜色,方格背景是形状轮廓未覆盖的背景)转到图片2,其中红色是我想要的颜色:
我可以使用 alpha mask 创建形状,如果需要,则白色或黑色为透明,或者例如使轮廓变成绿色。最终结果中,白色填充颜色必须保持不变。
是否可以使用标准颜色过滤器ColorMatrixColorFilter或PorterDuffColorFilter实现?如果是,我很难找出具体的过滤器。 我认为自定义ColorFilter不可能。
例如,从图片1(黑色代表我想要替换的颜色,方格背景是形状轮廓未覆盖的背景)转到图片2,其中红色是我想要的颜色:
我可以使用 alpha mask 创建形状,如果需要,则白色或黑色为透明,或者例如使轮廓变成绿色。最终结果中,白色填充颜色必须保持不变。
是否可以使用标准颜色过滤器ColorMatrixColorFilter或PorterDuffColorFilter实现?如果是,我很难找出具体的过滤器。 我认为自定义ColorFilter不可能。
.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.ADD))
- CrandellWS