2016-06-28 21 views
-1

カスタムビューを作成していますが、onDrawメソッドが呼び出されることはありません。私はこれをやってみた - setWillNotDraw(false)しかし、それはまだ動作しません。onDrawメソッドが呼び出されていませんか?

実際には、invalidate()を呼び出しても機能しません。ここに私のコードです -

public class Box extends View { 
    public Box (Context context) { 
     super (context); 
     init(); 
    } 

    private void init() { // Initialize paint object 
     paint = new Paint(); 
     paint.setStyle(Paint.Style.FILL); 
     paint.setColor(mBoxColor); 
     setMeasuredDimension(200, 200); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawRect(100, 100, 200, 200, paint); 
    } 
} 

マイアクティビティコード -

Box box = new Box(this); 

どのようにあなたが `あなたを追加しているあなたのMainActivity.javaで

+0

を助けてくださいBox'を 'Activity'の' View'階層に移動します?画面上に表示されるまで描画されません。 –

+0

this.setWillNotDraw(false)を追加します。 inコンストラクタ –

+0

ViewのサブクラスでsetWillNotDrawは無視されます。 ViewGroupのサブクラス用です。あなたはおそらく任意のビューにボックスを追加しなかったでしょう – Blackbelt

答えて

0

使用

setContentView(box); 
関連する問題