新人研修の記録3

Androidで円を描くにはdrawCircleメソッドを呼び出せば容易に円を描画できますが、
円弧を描くにはどうしたらよいでしょうか?
今回は新人研修で円弧を描画させることがあったので紹介します。

円弧を描くにはdrawCircleではなくdrawArcを使用します。
また、円と違うところはdrawArcを使用する前にRectFで矩形領域を指定するところです。
まず、RectFで矩形領域を指定し、指定した領域内に円弧が描かれるといった感じです。

drawArcは以下のようなメソッドとなっています。

drawArc(RectF , float startAngle, float sweepAngle, boolean useCenter, paint)

RectFで矩形範囲を指定し、startAngleを起点にして時計回りにsweepAngleの角度で
円弧を描きます。
ちなみにstartAngleは時計の3時の位置が0度となっています。
従って、startAngleに180度と入力すると時計の9時の位置が開始点となります。
また、useCenterをtrueにすると、円弧内を塗りつぶすことができ、paintには色を
指定することができます。

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

 //paintインスタンス作成
    Paint paint = new Paint();

    //色を設定(この場合赤色)
    paint.setColor(Color.argb(255, 255, 0, 0));

    //矩形座標指定
    RectF rect = new RectF(200, 500, 1200, 1500);

    //円弧内を含めて描画(塗りつぶし)
    canvas.drawArc(rect, 0, 90, true, paint);

}

円を描くのは簡単だったのですが、円弧はRectFで矩形座標を指定したり、
startAngleやsweepAngleがあったりで、最初はよくわかりませんでしたが、
こうやって整理すると理解しやすいですね。

応用例として指の動きに円弧が追従して動くようにすることも可能で、
やり方次第では面白いアプリが作れそうですね。

 

火曜担当:Tamamo



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム