以下のコードがソースビットマップmBitmapに変更を加えない理由はありますか?mBitmapは、カラーフィルターを適用したいグレースケール画像です。フィルタ自体は重要ではありませんが、私が適用したカラーフィルタは効果がありません。画面に描画されるのは、フィルターを適用していないかのように元のビットマップです。
次のようなさまざまなカラーフィルターを適用できます。
mPaint.setColorFilter(new LightingColorFilter(Color.RED, 100));
しかし、カラーマトリックスからカラーフィルターを作成しても、何も得られません。
私はAndroid2.3を使用しています。
私のコード:
float[] mat = new float[] {
1f, 0f, 0f, 0f, 1f,
2f, 0f, 2f, 1f, 0f,
1f, 1f, 0f, 0f, 0f,
0f, 0f, 0f, 1f, 0f,
2f, 0f, 0f, 0f, 1f };
ColorMatrix colorMatrix = new ColorMatrix(mat);
ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);
mPaint.setColorFilter(colorFilter);
mCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
mCanvas.drawBitmap(mBitmap, 0, 0, mPaint);