gpt4 book ai didi

android - 应用 ColorFilter/ColorMatrix 将图像完全变白

转载 作者:行者123 更新时间:2023-11-30 02:04:49 33 4
gpt4 key购买 nike

我的工具栏上有一个圆形的 ProgressBar 来显示一些不确定的进度,但是 ProgressBar 的默认样式(我知道的唯一一个使它变成圆环的样式)与工具栏的颜色相同('colorPrimary '颜色)。

我尝试的样式是 ?android:attr/progressBarStyleLarge?android:attr/progressBarStyleLargeInverse,它们都与工具栏颜色相同,因此它们不可见.

我读到我可以通过应用滤色器来改变颜色:

toolbarProgress.getIndeterminateDrawable().setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);

但是,我找不到将彩色图像变成全白图像(同时保持 alpha 透明度不变)的单个“PorferDuff.Mode”。

除了使用 PorterDuff 模式,我还可以应用 ColorMatrix。例如把它变成灰度我可以用这个:

        ColorMatrixColorFilter filter = new ColorMatrixColorFilter(new float[] {
0.5f, 0.5f, 0.5f, 0, 0,
0.5f, 0.5f, 0.5f, 0, 0,
0.5f, 0.5f, 0.5f, 0, 0,
0, 0, 0, 1, 0
});
toolbarProgress.getIndeterminateDrawable().setColorFilter(filter);

同样的问题:我找不到将图像完全变白的正确矩阵。灰度很接近,但它变成了浅灰色,而不是纯白色。

我想要的是将所有彩色像素变成纯白色,并让所有 alpha 像素保持透明。

除非有更简单的方法来更改原生 ProgressBar 的颜色......?

最佳答案

是否必须是ColorMatrixColorFilter?您可以使用 DrawableCompatDrawables 着色。

Drawable drawable = DrawableCompat.wrap(progressBar.getIndeterminateDrawable());
DrawableCompat.setTint(drawable, Color.WHITE);
toolbarProgress.setIndeterminateDrawable(drawable);

关于android - 应用 ColorFilter/ColorMatrix 将图像完全变白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847630/

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