3

AndroidViewクラスには というメソッドがonDrawあり、onDraw にはキャンバスが渡されます。ユーザーだけが渡されたキャンバスを明示的に作成することはなく、それにアクセスする他の手段がないように見えます。

に渡されるキャンバスとは何ですか?キャンバスはonDrawどこで作成され、アクセスする方法はありますか?

ご協力ありがとうございました。

4

2 に答える 2

0

ViewRootImplビュー階層の最上位クラスでCanvasある. 次に、それぞれが this の連結されたサブセット バージョンを各 childのメソッドに渡します。ViewGroupActivityViewGroupCanvasViewdraw()

私の知る限り、 (および関連するメソッド)のCanvas外側を操作することはできません。onDraw()

draw()自分が制御する の新しいインスタンスで自分自身を呼び出してみCanvasてください。それは画面に何も描画しませんがCanvas、クラスの他の場所を読んだり、ビットマップに変換したりできます。例については、この回答を参照してください: Android でビューをビットマップに変換する

于 2013-10-13T22:21:50.333 に答える