在上一篇博客中。我们探索了onDraw方法。使用Ondraw方法在屏幕上画了三个圆。并且实现了与用户的交互。不了解得同学可以看这里:点击打开链接
接下来我们使用path进行绘图。一个path可能包含很多线,点,甚至图形
定义一个path
public class SimpleDrawingView extends View {
// ...
private Path path = new Path();
// ...
}
path就是路径的含义。我们可以定义一些点。然后把这些点连接起来,就形成了图形
修改上一篇博文中的onTouchEvent方法
public class SimpleDrawingView extends View {
private Path path = new Path();
// 得到x和y。并将他们加入path
public boolean onTouchEvent(MotionEvent event) {
float pointX = event.getX();
float pointY = event.getY();
// 每当事件发生时
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//起点
path.moveTo(pointX, pointY);
break;
case MotionEvent.ACTION_MOVE:
// 画一条线,连接这一个点和上一个
path.lineTo(pointX, pointY);
break;
default:
return false;
}
postInvalidate(); // 指明需要重绘
return true;
}
// ...
}
然后修改上一篇博文中的onDraw方法。把圆去掉。把我们的path绘制出来
public class SimpleDrawingView extends View {
// ... 触摸事件...
// 画出path
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, drawPaint);
}
private void setupPaint() {
// 与之前相同
drawPaint.setStyle(Paint.Style.STROKE); // 修改成stroke
// ...
}
}
结果如图。
怎么样,是不是流畅多了。需要完整的代码请留言。