android自定義view之畫圓隨著手指移動
阿新 • • 發佈:2018-12-29
public class MyView extends View { private Paint mFanPaint,mTextPaint;//扇形畫筆和文字畫筆 public float AxisX=100; public float AxisY=100; public MyView(Context context) { super(context); init(); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public MyView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } private void init(){ mFanPaint = new Paint(); mFanPaint.setStyle(Paint.Style.FILL);//設定畫筆為全填充 mFanPaint.setColor(Color.BLACK);//畫筆顏色 } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //開始畫圓,AxisX開始x的位置,AxisY開始Y的位置, 50是圓的半徑 mFanPaint畫筆 canvas.drawCircle(AxisX,AxisY,50,mFanPaint); } @Override public boolean onTouchEvent(MotionEvent event) { //getX獲得點選x位置 AxisX = event.getX(); //getY獲得點選Y的位置 AxisY = event.getY(); //重繪,或者說重新整理View invalidate(); ////返回true自身消費 return true; } }