初学Path 先总结如下,
首先调用Path的MoveTo(x,y)方法,相当于确定路径的起点
然后不断的调用lineTo(x,y)方法,绘制各种图形
感觉lineTo(x,y)方法就是考验我们数学功底的时候啦
最后再调用close()方法,就把最后一个点和第一个点成功的连接起来啦
举例如下:
package com.example.imageview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
public class ImageView extends View {
public ImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public ImageView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public ImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//将整个View的背景绘制成白色
canvas.drawColor(Color.WHITE);
Paint paint = new Paint();
paint.setAntiAlias(true);//去锯齿???
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);//****这个风格是什么样子?????
paint.setStrokeWidth(3);//设置边框
//绘制圆形
canvas.drawCircle(40, 40, 30, paint);
//绘制正方形
canvas.drawRect(10, 80, 70, 140, paint);
//绘制矩形
canvas.drawRect(10, 150,70,190,paint);
//绘制圆角矩阵 ------ 就是先做出来一个矩形区域,然后不再调用drawRect方法,而是调用drawRoundRect方法
RectF rel = new RectF(10,200,70,230);//这是一个矩形区域
canvas.drawRoundRect(rel, 15, 15, paint);
//绘制椭圆
RectF rell = new RectF(10,240,70,270);
canvas.drawOval(rell, paint);
//定义一个三角形 利用Path
Path path1 = new Path();
path1.moveTo(10, 340);
path1.lineTo(70, 340);
path1.lineTo(40, 290);
path1.close();
//根据Path进行绘制
canvas.drawPath(path1, paint);
//绘制一个五边形
Path path2 = new Path();
path2.moveTo(10, 392);
path2.lineTo(26, 360);
path2.lineTo(54, 360);
path2.lineTo(70, 392);
path2.lineTo(40, 420);
path2.close();
//根据Path绘图
canvas.drawPath(path2, paint);
paint.setStyle(Paint.Style.FILL);//设置风格
}
}