絵を描画する。ドロイド君を書く

前回は丸のみを書きましたが、

次にドロイド君を書いてみたいと思います。

droid

大体で書いたので若干バランスがオリジナルと異なり
ますが、下記のようでできました。

色の設定に関しては、下記
#a4c639
にしたいのですが、setColorの中にはintの型で値を入れるので、

paint.setColor(0xffa4c639);

とします。(これで緑色になりました。)

頭の半円に関してdarwArcを使用します。
drawArcを利用する場合、最初にdrawArcの元の円が入る大きさの四角を用意します。

RectF rectf = new RectF(150,150,350,350);

このrectFを用いて下記のように設定をします。

canvas.drawArc(rectf, 180, 180, true, paint);

drawArc(四角,初めの角度,広がる角度,円の中心を含むか,paint)

この第4引数の値をfalseにすると中心を含まない形の弧になります。
trueの場合にはpizzaみたいな形になります。


四角を書く時ですが、四角の左上の座標を(x1,y1)右下の座標を(x2,y2)とすると、

canvas.drawRect(x1, y1, x2, y2, paint);

となります。

paint.setStyle()
を使うと次の設定が可能となります。

Paint.Style.FILL
塗りつぶす

Paint.Style.STROKE
線を引く

Paint.Style.FILL_AND_STROKE
線を引いて塗りつぶす。

どの場合にも設定した後のみ有効になります。


線を引く場合ですが最初に線の太さを決めます。

paint.setStrokeWidth(12);

線の角の形も決める事ができます。

paint.setStrokeCap(Paint.Cap.ROUND);

線の角の形は次から選ぶ事ができます。


Paint.Cap.BUTT
何もしない

Paint.Cap.ROUND
先を丸くします。

Paint.Cap.SQUARE
先を四角にします。

canvas.drawLine(220, 200, 170, 120, paint);

また、色の設定に関しては、

paint.setColor(0xffffffff);

の設定をすると、設定をするより上のプログラムと下のプログラムで色を変える事ができます。

以上で、簡単ではありますが下記の形で、ドロイド君を描画する事ができました。

(腕などには、丸に四角を重ねる形で作成をしております。)

DrawView.java

package in.andante.drawd;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.view.View;

public class DrawView extends View {
 
 public DrawView(Context context){
 super(context);
 }
 
 protected void onDraw(Canvas canvas){
 Paint paint = new Paint();
 //色のセット
 paint.setColor(0xffa4c639);
 //アンチエイリアス
 paint.setAntiAlias(true);
 RectF rectf = new RectF(150,150,350,350);
 canvas.drawArc(rectf, 180, 180, true, paint);
 
 //body
 canvas.drawRect(150, 260, 350, 400, paint);
 canvas.drawRect(170, 400, 330, 420, paint);
 //bodyCirc
 canvas.drawCircle(170, 400, 20, paint);
 canvas.drawCircle(330, 400, 20, paint);
 
 //arm
 canvas.drawRect(100, 280, 140, 380, paint);
 canvas.drawRect(360, 280, 400, 380, paint);
 
 //armcirc
 canvas.drawCircle(120, 280, 20, paint);
 canvas.drawCircle(120, 380, 20, paint);
 canvas.drawCircle(380, 280, 20, paint);
 canvas.drawCircle(380, 380, 20, paint);
 
 //leg
 canvas.drawRect(180, 400, 230, 460, paint);
 canvas.drawRect(270, 400, 320, 460, paint);
 //legCirc
 canvas.drawCircle(205, 460, 25, paint);
 canvas.drawCircle(295, 460, 25, paint);
 
 //head
 paint.setStrokeWidth(12);
 paint.setStrokeCap(Paint.Cap.ROUND);
 canvas.drawLine(220, 200, 170, 120, paint);
 canvas.drawLine(280, 200, 320, 120, paint);
 
 //eye
 paint.setColor(0xffffffff);
 canvas.drawCircle(210, 200, 10, paint);
 canvas.drawCircle(290, 200, 10, paint);
 
 /*
 canvas.drawRect(150, 260, 350, 450, paint);
 canvas.drawRect(150, 260, 350, 450, paint);
 canvas.drawRect(150, 260, 350, 450, paint);
 canvas.drawRect(150, 260, 350, 450, paint);*/
 }
}

Drawd.java

package in.andante.drawd;

import android.app.Activity;
import android.os.Bundle;

public class Drawd extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 DrawView view = new DrawView(this);
 setContentView(view);
 }
}

上記で、ドロイド君が書けました。

  • written on 2011.04.04
  • category : 描画

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑