首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColorFilter添加但忽略透明部件

ColorFilter添加但忽略透明部件
EN

Stack Overflow用户
提问于 2018-03-15 10:17:32
回答 1查看 736关注 0票数 1

在我的应用程序中,我试图改变标记图像的颜色。但这并不是我想要的效果。

代码语言:javascript
复制
Drawable drawable = getDrawable(R.drawable.ic_marker);
drawable.setColorFilter(item.getColor()), PorterDuff.Mode.ADD);

可绘制图如下(如下所示),当我添加ColorFilter时,标记得到正确的颜色,白色保持白色,但图像的透明部分也得到颜色。我只想要黑色的改变,而白色和透明的部分必须保持这样。

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 10:20:07

这就是我用setColorFilterColorMatrixColorMatrixColorFilter做实验的地方。

代码语言:javascript
复制
drawable.setColorFilter(item.getColorMatrix());

代码语言:javascript
复制
drawable.setColorFilter(new ColorMatrixColorFilter(getColorMatrix5()));//custom 5

//custom 5
private ColorMatrix getColorMatrix5() 
{
    ColorMatrix colorMatrix = new ColorMatrix();
    colorMatrix.setSaturation(0);//make it greyscale
    ColorMatrix blueMatrix = new ColorMatrix(new float[] {
        0, 0, 0, 0, 0, // red
        0, 0, 0, 0, 0, // green
        1, 1, 1, 1, 1, // blue
        1, 1, 1, 1, 1  // alpha
    });
    // Convert, then scale and clamp
    colorMatrix.postConcat(blueMatrix);
    return colorMatrix;
}//getColorMatrix5

PorterDuffPorterDuff.ModePorterDuffXfermodeColorFilterColorMatrixColorMatrixColorFilterPorterDuffColorFilterCanvasColor

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49296812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档