グラフィックス-Canvasクラスを使用した描画

February 08 [Mon], 2010, 23:17
今日は、Canvasクラスを使用したグラフィックス処理について勉強します。

Canvasクラスには、図形描画のために沢山のメソッドが用意されています。

・drawArc
・drawBitmap
・drawCircle
・drawLine ←今回はコレ(線の描画メソッド)を使います
・drawOval
・drawPath
・drawPicture
・drawPoint
・drawPosText
・drawRect
・drawRoundRect
・drawText
・drawTextOnPath

今回は、等間隔でグリッド線を表示するプログラムです。
画面をタッチするたびに、グリッドを拡大します。







* GridView.java *

package jp.sugitom.graphicstest;

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

public class GridView extends View {
  private final int DIVIDION_MIN = 10;
  private int m_division;
  
  public GridView(Context context) {
    super(context);
    m_division = DIVIDION_MIN;
  }

  protected void onDraw(Canvas canvas){
    int i;
    float scale,width,height;

    // 分割数デクリメント
    m_division -=1;
    if(m_division < 0 ){
      m_division = DIVIDION_MIN;
    }

    // 画面サイズ取得
    width = this.getWidth();
    height = this.getHeight();
    scale = width / m_division;
    
    // 描画カラー設定
    Paint paint = new Paint();
    paint.setColor(Color.GREEN);
    
    // 縦軸描画
    for( i=1; i< m_division; i++){
      canvas.drawLine(i * scale, 0.0f, i * scale, height, paint);
    }

    // 横軸描画
    i = 1;
    while((i * scale) < height){
      canvas.drawLine(0.0f, i * scale, width, i * scale, paint);
      i++;
    }
  }
}


*GraphicsTestActivity.java *

package jp.sugitom.graphicstest;

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

public class GraphicsTestActivity extends Activity {
  // メンバ変数
  private GridView m_gridView;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 図形生成
    m_gridView = new GridView(this);

    // Activityに図形を設定
    setContentView(m_gridView);

  }
  public boolean onTouchEvent(MotionEvent event){
    if(event.getAction() == MotionEvent.ACTION_DOWN){
      // 無効→再描画
      m_gridView.invalidate();
      return true;
    }
    return super.onTouchEvent(event);
  }
}

  • URL:https://yaplog.jp/sugitom/archive/6
Comment
小文字 太字 斜体 下線 取り消し線 左寄せ 中央揃え 右寄せ テキストカラー 絵文字 プレビューON/OFF

不正な自動コメント投稿を防ぐため、チェックボックスにチェックをしてください。

利用規約に同意
 X 
禁止事項とご注意
※本名・メールアドレス・住所・電話番号など、個人が特定できる情報の入力は行わないでください。
「ヤプログ!利用規約 第9条 禁止事項」に該当するコメントは禁止します。
「ヤプログ!利用規約」に同意の上、コメントを送信してください。
プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:sugitom
  • アイコン画像 性別:女性
  • アイコン画像 血液型:O型
  • アイコン画像 現住所:宮城県
読者になる
2010年02月
« 前の月  |  次の月 »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28
最新コメント
アイコン画像sugitom
» Google Maps API でジオコーディング (2010年04月30日)
アイコン画像yuckn
» Google Maps API でジオコーディング (2010年04月30日)
アイコン画像vorsprung7
» Wi-Fiつながった (2010年04月10日)
アイコン画像vorsprung7
» Wi-Fiつながった (2010年02月19日)
アイコン画像vorsprung7
» Wi-Fiつながった (2010年02月15日)
アイコン画像vorsprung7
» グラフィックス-SurfaceView (2010年02月11日)
アイコン画像vorsprung7
» イキナリ、無線LANに繋がらなくなった・・ (2010年02月11日)
アイコン画像sugitom
» グラフィックス-SurfaceView (2010年02月11日)
アイコン画像vorsprung7
» グラフィックス-SurfaceView (2010年02月10日)
アイコン画像vorsprung7
» グラフィックス-Drawrableクラスを使用した描画 (2010年02月07日)
Yapme!一覧
読者になる