gpt4 book ai didi

android - 将 ShapeDrawable 中的单一(黑色)颜色替换为 Android 中的另一种颜色

转载 作者:搜寻专家 更新时间:2023-11-01 08:43:00 25 4
gpt4 key购买 nike

假设我在 Android 中有一个 ShapeDrawable。不是位图。我想用另一种颜色动态替换其中的单一颜色(描边颜色)。新的所需颜色在设计时是未知的,不能放入可绘制资源中。

以图1为例(黑色代表我要替换的颜色,方格背景是未被形状轮廓覆盖的背景):

picture 1

到图 2,红色是我想要的颜色:

picture 2

如有必要,我可以使用 alpha 蒙版构建形状 - 例如,如有必要,让白色或黑色透明,或者将轮廓设为绿色。白色填充颜色必须在最终结果中保持白色。

是否可以使用标准滤色器 - ColorMatrixColorFilter 或 PorterDuffColorFilter 来实现?如果是这样,我很难找出具体的过滤器。我假设自定义 ColorFilter 是不可能的。

最佳答案

在您想要设置为任意颜色的黑色边框和白色内部的特定情况下,您可以使用 PorterDuff在 ADD 模式下过滤。由于它是饱和的,因此不会对白色区域产生任何影响,并且由于黑色为零,因此添加颜色会有效地将所有黑色区域设置为该颜色。

例如将其设置为红色:

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

关于android - 将 ShapeDrawable 中的单一(黑色)颜色替换为 Android 中的另一种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31015537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com