-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で
を助けてくださいBox'を 'Activity'の' View'階層に移動します?画面上に表示されるまで描画されません。 –
this.setWillNotDraw(false)を追加します。 inコンストラクタ –
ViewのサブクラスでsetWillNotDrawは無視されます。 ViewGroupのサブクラス用です。あなたはおそらく任意のビューにボックスを追加しなかったでしょう – Blackbelt