27

我使用这个在 imageView 上显示 svg 图像,我想用这个 imageView 显示锁定和解锁模式,当状态被锁定时,在灰度滤色器中显示 imageView。类似于 css 上的这段代码:

-webkit-filter: grayscale(100%); opacity: 0.5;

我怎样才能做到这一点 ?有谁能够帮我 ?谢谢

4

1 回答 1

75

您应该能够使用以下方法使图像变为灰度和褪色:

public static void  setLocked(ImageView v)
{
    ColorMatrix matrix = new ColorMatrix();
    matrix.setSaturation(0);  //0 means grayscale
    ColorMatrixColorFilter cf = new ColorMatrixColorFilter(matrix);
    v.setColorFilter(cf);
    v.setImageAlpha(128);   // 128 = 0.5
}

并使用以下方法重置它:

public static void  setUnlocked(ImageView v)
{
    v.setColorFilter(null);
    v.setImageAlpha(255);
}
于 2015-02-04T01:54:30.480 回答