2

ドローアブルをグレースケールするには、次のようにします。

ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(200);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
drawable.setColorFilter(filter);

ジャスティンが言ったように。それは正常に動作します。

私はsvg-androidライブラリを使用しています。だから私はしようとしています:

PictureDrawable pictureDrawable = svg.createPictureDrawable();
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(200);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
pictureDrawable.setColorFilter(filter);
imageView.setImageDrawable(pictureDrawable);

しかし、何も起こりません.何が問題なのですか?

4

2 に答える 2

3

Androidのソースコードで原因を見つけたのではないかと思います。

Drawable.java

public abstract void setColorFilter(ColorFilter cf);

PictureDrawable.java

@Override
public void setColorFilter(ColorFilter colorFilter) {}

簡単に言えば、への呼び出しsetColorFilterPictureDrawablesには役に立ちません。

于 2012-12-01T03:59:36.670 に答える