Android中如何绘制bitmap?
巴扎黑
巴扎黑 2017-04-17 17:41:55
0
2
443
MaskBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888);
        MaskCanvas = new Canvas(MaskBitmap);
        Rect rect = new Rect(0,0,width,height);
        MaskCanvas.drawRect(rect,MaskPaint);

这个时候的并没有显示需要draw的图像,需要

@Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(MaskBitmap,0,0,MaskPaint);
    }

请问一下为什么第一次drawrect的时候为什么不显示图层。刚刚开始学习自定义view,希望可以解释一下。

巴扎黑
巴扎黑

全員に返信(2)
黄舟

Canvas通常、翻訳はキャンバスです。キャンバスとは絵を描くためのものです。

しかし、キャンバスに描いたらそのまま画面に表示されるわけではありません。

プログラムには新しいキャンバスがたくさんありますが、画面に表示されるのは指定されたキャンバスであり、このキャンバスに描画することによってのみ表示されます。

onDraw(Canvas canvas) に渡されるのは画面表示に使用されるキャンバスで、このキャンバス上に何かを描画する場合にのみ表示されます。自分の新しいキャンバスについては、描画することはできますが、表示されません。

いいねを押す +0
Ty80

@Youming の答えは正しいです。少し追加します。
初めて描画するとき、実際に 長方形を MaskBitmap に描画しますが、ビットマップは画面に表示されません。つまり、この MaskBitmapImageView に設定すると、描画された四角形は表示されます。 ただし、ここでの原則は ImageView.onDraw() 画面内にビットマップを描画することです。キャンバスオン。

MaskBitmap に設定し、四角形を ImageView に描画した場合でも、MaskBitmap を呼び出して再描画をトリガーして四角形を表示する必要があります。ImageView.invalidate()

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート