Android 自訂View首先繼承View Object後Over Write 「onDraw」方法。

先取得元件的寬度與高度,首先 透過 width > height ? 找出View的「短邊」,為避免難以識別,所以加上20的padding。以此結果為圓的半徑。

透過Paint將整個圓型繪製出來。

 

完整程式碼如下:

public class radiusView extends View {
	
	private String tag = "radiusView";
	
	protected int radius_center_x;
	protected int radius_center_y;
	protected int width;
	protected int height;
	protected int radius;

	public radiusView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		drawRadius(canvas);
	}

	protected void drawRadius(Canvas canvas) {
		width = this.getWidth();
		height = this.getHeight();
		radius = (width > height ? height / 2 : width / 2) - 20;
		radius_center_x = width / 2;
		radius_center_y = height / 2;
		Log.i(tag, String.format("width=%d,height=%d,radius=%d", width,height,radius));
		// prepare a paint
		Paint paint = new Paint();
		paint.setColor(Color.BLACK);
		paint.setStyle(Paint.Style.STROKE);
		paint.setStrokeWidth(5);
		paint.setAntiAlias(true);
		// draw a circle
		canvas.drawCircle(radius_center_x, radius_center_y, radius, paint);
	}

	public int getRadius_center_x() {
		return this.radius_center_x;
	}

	public int getRadius_center_y() {
		return this.radius_center_y;
	}
}
arrow
arrow
    文章標籤
    Android
    全站熱搜

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()