お絵かき
独自Viewで実装。
今回はxmlを使わない処理をする。
そのため、setContentViewの引数に作成したViewのインスタンスをセットしている。
独自Viewのコード
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import 色々; public class MyView extends View { Path path; Paint p; public MyView(Context context) { super(context); init(); } private void init() { path = new Path(); p = new Paint(); p.setColor(Color.BLUE); p.setStrokeWidth(3); p.setStyle(Paint.Style.STROKE); p.setStrokeJoin(Paint.Join.ROUND);// 線の結合部分のスタイル } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawPath(path, p); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN://指を降ろした path.moveTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_MOVE://指を動かした path.lineTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_UP://指を離した path.lineTo(event.getX(), event.getY()); break; } invalidate(); return true;// trueでイベント消化 } } |
Pathクラスについて
drawPathメソッドで指定したpaintのスタイルに従って線を描画できる。
イベント消化について
一つのオブジェクトで複数の処理を行う場合に他の処理も同時に行うか、その処理のみを行うかを判定する。
実行結果
押してるから今日はこれだけ・・・・てかもう今日じゃないんですけどね!昨日のことなんですけどね!
一個ずつ解説すると大変だね・・・・
なんかもっと簡単に説明できて効果的に理解する手段を考えなくては・・・・
コメント
No Trackbacks.