2

キャンバスに(指定した色で)ビットマップを描きたいのですが。

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.RED);

// create bitmap

    canvas.drawBitmap(bitmap, 0, 0, paint);

さて、ビットマップはキャンバスに表示されますが、ドローアブルの色は変わりませんでした。問題はどこだ?

4

2 に答える 2

4

キャンバスに(指定した色で)ビットマップを描きたいのですが。

ビットマップには画像が含まれており、画像を単色で描画しても意味がありません。あなたはそれが何をすることを期待していますか?赤い長方形を描きますか?図形は画像ではなく色で描くことができます...

あなたのColor属性はPaint無視されます。このPaintパラメータは、アンチエイリアシングなどの他の設定を渡すために使用されます。

これが明らかになることを願っています。

于 2012-12-04T15:42:45.360 に答える
1

paint.setColor(Color.RED)無関係です。画像にアルファチャネルが付属していて、単色で描画したい場合は、ColorFilter代わりに次を使用してください。

paint.setColorFilter(new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
于 2017-12-19T16:56:45.900 に答える