Drawable => grayscale

前端 未结 4 1448
清歌不尽
清歌不尽 2020-12-07 23:22

What would be the right way to turn a color Drawable into a grayscale one (to indicate disabled state)?

EDIT:
B/W => grayscale

4条回答
  •  忘掉有多难
    2020-12-07 23:46

    I know this question was asked a while ago, but I came across a simpler solution that works if you have a Drawable and you just want to display that same drawable in grayscale. No need to have a canvas or a painter...

    protected Drawable convertToGrayscale(Drawable drawable)
    {
        ColorMatrix matrix = new ColorMatrix();
        matrix.setSaturation(0);
    
        ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
    
        drawable.setColorFilter(filter);
    
        return drawable;
    }
    

    Hope this helps too!

提交回复
热议问题