1. 程式人生 > >android自定義view之畫圓隨著手指移動

android自定義view之畫圓隨著手指移動

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;
}
}