假设我在 Android 中有一个 ShapeDrawable。不是位图。我想用另一种颜色动态替换其中的单色(笔触颜色)。新的所需颜色在设计时是未知的,并且不能放入可绘制资源中。
比如从图1开始(其中黑色代表我要替换的颜色,方格背景是没有被形状轮廓覆盖的背景):
到图像 2,其中红色是我想要的颜色:
如有必要,我可以使用 alpha 蒙版构建形状 - 例如,如果需要,使白色或黑色透明,或者使轮廓变为绿色。白色填充颜色必须在最终结果中保持白色。
是否可以使用标准滤色器 - ColorMatrixColorFilter 或 PorterDuffColorFilter 来实现?如果是这样,我很难找出特定的过滤器。我认为自定义 ColorFilter 是不可能的。