SurfaceViewを使って作ってみる。
内容は、画面をなぞったら描画できるだけに限定し、他の設定は行わない。
(他の設定:保存したら画面に描画した物を消したりする)
まず、座標の位置を保管する方法を考える。
座標の位置を保管する物を作る。
使用するのは、ArrayList。
JavaのArrayList<E>クラスは、サイズが拡張可能な配列型データ構造
ArrayListの使い方
ArrayListクラスは大きさが決まっていない配列。
ArrayListを使うには、まずArraListクラスのオブジェクトを作成する。
デフォルトは初期容量 10 で空のリストを作成。
大きさは変更可能、サイズは足りなくなれば自動的に拡張される。
J2SE5.0以降は下記のように作成
ArrayList<型> 変数名 = new ArrayList<型>();
クラスの後ろに"<"と">"に囲まれて型を指定する部分がある。
この記述方法は、J2SE5.0から新しく導入されたGenerics機能と呼ばれるもの。
画面にタッチしたら、タッチしたポイントに描画する為にもう1つ必要なことがある。
タッチした座標値をこのArrayListを使って、どのように設定するか。
設定方法
①タッチした座標値を取得する
使う物はPointクラス。
最初、event.getX()とevent.getY()で得た座標値をxとyの変数に代入
x=event.getX()
y=event.getY()
そして、このxとyをPointの引数に入れる。
Point point=new Point(x,y);
②ArrayListを作る
インスタンスの作成
ArrayList<Point> draw=new ArrayList<Point>();
タッチイベントで、Pointを作った所でadd()メソッドを呼び出し、登録する
draw.add(point)
③描画処理
描画処理内にてfor()文を使用し、繰り返し処理を行う。
for(int i=0;i<draw;i++) {
ここでも、Pointクラスを呼び出す。
ArrayListに登録されている座標値を引っ張り出す支持を設定する。
引っ張り出すメソッドはget()メソッド。
こんな感じに記述
Point point=draw.get(i);
後は、描画する図形のメソッドの引数にて使用する。
canvas.drawCircle(point.x, point.y, r, paint);
}
JavaTM PlatformStandard Ed. 6 クラス:ArrayList<E>
Android Reference ArrayList<E>
その他のタッチイベント関連
タッチイベントを使って、画像を回転させる
ランダムクラスを使って色の変更を行うタッチイベントを使って、画像を回転させる
Androidのタッチイベントを使ってアニメーションを動作させる
0 件のコメント:
コメントを投稿