您的位置:首页 > 移动开发 > Android开发

Android使用Path绘制相关的图形

2015-11-02 17:13 519 查看
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);
}
}


效果如图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: