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; } }
文章標籤
全站熱搜