Path.Direction.CW:clockwise ,沿顺时针方向绘制
Path.Direction.CCW:counter-clockwise ,沿逆时针方向绘制
举个例子讲解:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画布背景颜色
canvas.drawColor(Color.YELLOW);
//将坐标系的原点移动到控件的中心
canvas.translate(getMeasuredWidth()/2,getMeasuredHeight()/2);
//创建矩形
Path path = new Path();
RectF rectF = new RectF(-200, -200, 200, 200);
path.addRect(rectF, Path.Direction.CW);
//重置最后一个点的位置
path.setLastPoint(-50,50);
canvas.drawPath(path,paint);
}
运行效果图:
之所以运行成如此,是因为setLastPoint重置了最后一点的位置,即D被重置为(-50,50)。可为什么重置点D而不是其它点呢?原因在于Path.Direction.CW(表示按顺时针方向绘制)。绘制矩形时,首先以(left, top)为起始点,以(width/2, height/2)为中心点,然后根据Direction来绘制下一点。CW表示顺时针,下一点自然就是B,再下一个点就是C,最后一个点就是D,由于setLastPoint的原因,D点位置变成了(-50, 50)。依次连线各个点,便有上图结果。
如果把Direction.CW换成Direction.CCW,那么运行效果图:
注意:我在模拟器测试的时候,发现绘制效果不正确;换成真机后,测试效果图如上。