public class PathView extends View {
private Paint mPaint;
private Path mPath;
public PathView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public PathView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public PathView(Context context) {
super(context);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(Color.GREEN);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setTextSize(50);
mPaint.setAntiAlias(true);
mPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
drawCircle(canvas);
drawTriangle(canvas);
drawRect(canvas);
// drawText(canvas);
}
/**
* 在path上画文字
*/
private void drawText(Canvas canvas) {
mPath.addCircle(360, 360, 100, Direction.CW); // 顺时针
canvas.drawTextOnPath("coding the world", mPath, 0, 0, mPaint);
}
/**
* 画圆形
*/
private void drawCircle(Canvas canvas) {
mPath.addCircle(260, 260, 50, Direction.CW);
canvas.drawPath(mPath, mPaint);
}
/**
* 画三角形
*/
private void drawTriangle(Canvas canvas) {
mPath.moveTo(50, 50);
mPath.lineTo(0, 100);
mPath.lineTo(100, 100);
mPath.close();
canvas.drawPath(mPath, mPaint);
}
/**
* 画矩形
*/
private void drawRect(Canvas canvas) {
mPath.moveTo(100, 100);
mPath.lineTo(100, 200);
mPath.lineTo(200, 200);
mPath.lineTo(200, 100);
mPath.close();
canvas.drawPath(mPath, mPaint);
}
}public class PathView extends View {
private