阅读背景:

Android使用Path绘制相关的图形

来源:互联网 
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 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: