package org.ntlab.irisclient;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.Nullable;
public class DrawingCanvas extends View {
private Path path;
private Paint paint;
public DrawingCanvas(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
//1)コンストラクタ(≒必需品)
path = new Path();//線を引いたり、図形を描いたり、要するにグラフィック
paint = new Paint();//筆の種類
paint.setColor(Color.RED);//色の指定
paint.setStyle(Paint.Style.STROKE);//線をひく
paint.setStrokeWidth(20);//幅
}
//2)onDraw(描画の準備/プロペラが回りだした状態)
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawPath(path,paint);
}
//3)実際の操縦 (条件分岐:押したとき、動かしたとき、放した時)
@Override
public boolean onTouchEvent(MotionEvent event) {
//(3-1)座標を取得(x座標、y座標)
float x = event.getX();
float y = event.getY();
//(3-2)タッチの処理
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://タッチした瞬間
path.moveTo(x,y);
invalidate();
break;
case MotionEvent.ACTION_MOVE://動かしている間
path.lineTo(x,y);
invalidate();
break;
case MotionEvent.ACTION_UP://手を離す
break;
}
//return super.onTouchEvent(event);
return true;
}
//4)クリア処理
public void clearCanvas(){
path.reset();
invalidate();
}
}