web-dev-qa-db-ja.com

dispatchDraw(Canvascanvas)の使用

の用途は何ですか dispatchDraw(Canvasキャンバス) ViewGroupクラスのメソッド??

16
Favas Kv

Androidドキュメントから- protected void dispatchDraw (Canvas canvas)

子ビューを描画するために描画によって呼び出されます。これは、子が描画される直前(ただし、独自のビューが描画された後)に制御を取得するために、派生クラスによってオーバーライドされる場合があります。

20
Eric

たとえば、ViewGroupは、Linear-、Relative-、FrameLayout-、AbsoluteLayoutの親です。 1

ViewGroupクラスは抽象的であるため、インスタンスを直接作成することはできません。
次の関数を使用して、これから1を使用できます。

dispatchDraw(Canvas canvas) 

理由は不明ですが、クラス1は

onDraw(Canvas canvas) 

で描く

dispatchDraw(Canvas canvas) 

このクラス1に含まれている可能性があり、UIを作成するのは楽しいことです。

次のようになります。

/////

public class MainActi extends MyLinearLayout. 
public MainActi(Context con...
super(cont...)
MyLinearLayout extends LinearLayout 

@Override protected void dispatchDraw(Canvas canvas) {
canvas.drawColor(Color.YELLOW);

... ///

または、スキップバックして描画します

onDraw(Canvas canvas) 

MainActivity "View"で拡張するか、次のようなexternクラスで参照します。

MyMelIsDrawing extends View 
   onDraw(Canvas canvas) 
       //now draw...
1
azuztekztorem