1. ホーム
  2. java

Androidでキャンバスに円を描くには?

2023-09-03 14:25:49

質問

キャンバスで円を描きたい。以下は私のコードです。

[MyActivity.java]を参照してください。

public class MyActivity extends Activity 
{
 public void onCreate(Bundle savedInstanceState) 
   {
      ...
      setContentView(new View(this,w,h));
   }
        
}

[View.java]を参照してください。

public class View extends SurfaceView
{
    public View(Context context, int w, int h)
    {
        super(context);
        Canvas grid = new Canvas(Bitmap.createBitmap(h,w, Bitmap.Config.ARGB_8888));
        grid. drawColor(Color.WHITE);
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        grid.drawCircle(w/2, h/2 , w/2, paint);
    }
}

というわけで、丸のない黒い画面が表示されるだけです。 なぜそれが動作しないのですか?どのようにそれを修正するのですか?

どのように解決するのですか?

ビューのonDrawメソッドをオーバーライドして、円を描画することができます。

protected void onDraw(Canvas canvas) {
 super.onDraw(canvas);

 canvas.drawCircle(x, y, radius, paint);

}

カスタムビューの描画に関するより良いリファレンスは、Androidの公式ドキュメントをご覧ください。

http://developer.android.com/training/custom-views/custom-drawing.html