gpt4 book ai didi

Android - 如何防止带有 Porterduff.Mode.Screen 的 ColorFilter 混合 alpha?

转载 作者:行者123 更新时间:2023-11-29 00:32:40 26 4
gpt4 key购买 nike

我在我的 GridView 中加载了一些图像,我想使用屏幕混合模式为它们应用微红色。

在我的适配器中我有这段代码:

ImageView image = (ImageView) findViewById(...);
image.getDrawable().setColorFilter(channel.getSelectedColor(), Mode.SCREEN);

我也试过

image.setColorFilter(channel.getSelectedColor(), Mode.SCREEN);

但我总是以这样的方式结束: Alpha channel is red

如果我使用 Mode.Multiply,它不会为透明背景着色,但结果会太​​暗。是否可以使用 Mode.Screen 而不对透明部分着色?

我必须创建一个 ColorMatrix 吗?有人能指出我正确的方向吗?

最佳答案

显然,您还可以使用 LightingColorFilter :

static ColorFilter screen(int c) {
return new LightingColorFilter(0xFFFFFFFF - c, c);
}

然后将其用作可绘制对象的滤色器:

image.getDrawable().setColorFilter(screen(channel.getSelectedColor()));

这似乎可行。

关于Android - 如何防止带有 Porterduff.Mode.Screen 的 ColorFilter 混合 alpha?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463384/

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