Android: установите фильтр серой шкалы в imageView

Я использую эту библиотеку, чтобы показать изображение svg на imageView, я хочу показать заблокированный и разблокированный режим с помощью этого образа Image, когда состояние заблокировано imageView в градационном цветовом фильтре. что-то вроде этого кода на css:

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

как я могу это сделать? Кто-нибудь может мне помочь? спасибо

Ответ 1

Вы можете сделать изображение серого цвета и исчезнуть, используя следующее:

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
}

И reset он использует:

public static void  setUnlocked(ImageView v)
{
    v.setColorFilter(null);
    v.setImageAlpha(255);
}