web-dev-qa-db-ja.com

android:グレースケールフィルターをimageViewに設定します

私はこれを使用します library imageViewにsvg画像を表示します。状態がロックされている場合、このimageViewでロックモードとロック解除モードを表示します。グレースケールカラーフィルターでimageViewを表示します。 cssのこのコードのようなもの:

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

これどうやってするの ?誰かが私を助けることができますか?ありがとう

16
mahdi

次を使用して、画像をグレースケールおよびフェードにすることができるはずです。

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);
}
44
Paul LeBeau