在了解 Android 中Paint 和 Canvas 的简单使用后,下面做一个简单的涂鸦功能
先看下效果图:
那么来看一下是如何完成的:
/**
* author: wu
* date: on 2018/12/11.
* describe:涂鸦
*/
public class MyView3 extends View {
private Paint myPaint;
private Path myPath;
public MyView3(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
myPaint = new Paint();
myPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
myPaint.setColor(Color.BLUE);
myPaint.setStrokeWidth(5);
myPaint.setStyle(Paint.Style.STROKE);
canvas.drawPath(myPath, myPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
//按下
case MotionEvent.ACTION_DOWN:
myPath.moveTo(event.getX(), event.getY());
return true;
case MotionEvent.ACTION_MOVE:
myPath.lineTo(event.getX(), event.getY());
//刷新页面
invalidate();
break;
case MotionEvent.ACTION_UP:
break;
}
return super.onTouchEvent(event);
}
}
代码非常简单,首先创建画笔,设置画笔颜色、风格;其次是根据手指动的时候绘制出对象的图像,然后实时更新页面即可。
然后在布局文件中加入下面代码即可:
<com.example.qd.permission.MyView3
android:layout_width="match_parent"
android:layout_height="match_parent" />
简单的涂鸦的功能就完成了。