paintandroid



















簡単な図形を書いてみました。
「Hello World,NewActivity」の下に追加描画されるように。

前回書いたNewActivity.javaに追加プログラムを記述して、
新しくPaintView.javaファイルを作って記述しました。

コードは「続きを読む」から。
eclipseで行番号も一緒にコピーする方法あったら教えて欲しい。

とりあえずJAVAがよくわかってなくても本の通り記述すれば出来る、と。

あんまり基本的なJAVA演算とかの練習ばかりじゃつまんないから。

背伸びだ、背伸びだ。

androidエミュレータで図形が出てきた時はうれしかった!

やったー図が書けたぞー。


PaintView.javaのファイルはNewActivity.javaを記述してたら、

「PaintView.javaファイルがないよ、作る?」みたいな英語メッセージが出てきて、

なるほど、そういう事か、と。作る作る、と。

ん、よく見ると本に比べて円が一つ少ない。

今日はもう時間がないのでまた見直してみよう。

<参考にした本>
基礎から学ぶ Android SDK
クチコミを見る

<<NewActivity.java>>

package com.example.hello.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
  *
 * 文字とグラフィックの描画サンプル
 *
 */
public class NewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
       
        //レイアウトの作成
        LinearLayout layout = new LinearLayout(this);
        //レイアウトを縦方向に設定
        layout.setOrientation(LinearLayout.VERTICAL);
        //レイアウトをActivityに設定
        setContentView(layout);
       
        //文字列の作成
        TextView tv = new TextView(this);
        //文字列にString.xmlのhelloを設定
        tv.setText(R.string.hello);
        //レイアウトに追加
        layout.addView(tv);
        //レイアウトにペイントビューの追加
        layout.addView(new PaintView(this));
    }
        
    }

<<PaintView.java>>

package com.example.hello.android;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.view.View;
/*
 *
 * グラフィックの描写サンプル
 *
 */
public class PaintView extends View {

 public PaintView(Context context){
  super(context);
 }
 @Override
 protected void onDraw(Canvas canvas){
  
  super.onDraw(canvas);
  
  //キャンバス背景色を設定
  canvas.drawColor(Color.GRAY);
  //描画するペイントクラスを生成
  Paint paint = new Paint();
  
  //ペイントクラスに線の色を設定
  paint.setARGB(255, 255,255, 255);
  //ペイントクラスにアンチエイリアスの設定
  paint.setAntiAlias(true);
  //ペイントクラスに線幅の設定
  paint.setStrokeWidth(1);
  //ペイントクラスに線を描画
  paint.setStyle(Paint.Style.STROKE);
  
  
  //キャンバスに右下がりの線を描画
  canvas.drawLine(0, 0, 50, 50, paint);
  //キャンバスに右上がりの線を描画
  canvas.drawLine(50, 50, 100, 0, paint);
  
  //線幅の設定
  paint.setStrokeWidth(3);
  //四角の描画
  paint.setStyle(Paint.Style.STROKE);
  //キャンバスに四角の描画
  canvas.drawRect(new Rect(5,50,95,90), paint);
  
  
  //四角形の塗りつぶし
  paint.setStyle(Paint.Style.FILL);
  //キャンバスに四角形の塗りつぶしの描画
  canvas.drawRect(new Rect(100,50,190,90), paint);
  
  
  //線幅の設定
  paint.setStrokeWidth(3);
  
  //楕円の描画
  paint.setStyle(Paint.Style.STROKE);
  //キャンバスに楕円の描画
  canvas.drawOval(new RectF(5.0f,100.0f,95.0f,150.0f), paint);
  
  
  //楕円の塗りつぶし
  paint.setStyle(Paint.Style.FILL);
  //キャンバスに楕円の塗りつぶしの描画
  canvas.drawOval(new RectF(100.0f,100.0f,190.0f,150.0f), paint);
  
  //線幅の設定
  paint.setStrokeWidth(5);
  //アンチエイリアスの設定解除
  paint.setAntiAlias(false);
  //丸の描画
  paint.setStyle(Paint.Style.STROKE);
  //キャンバスに丸の描画
  canvas.drawCircle(55.0f,2050f,50.0f, paint);
  
  
  //丸の塗りつぶし
  paint.setStyle(Paint.Style.FILL);
  //キャンバスに丸の塗りつぶしの描画
  canvas.drawCircle(155.0f, 205.0f, 50.0f, paint);
  
 }
}