1. 程式人生 > >自定義view繪製一個跟隨手指觸控移動的小球

自定義view繪製一個跟隨手指觸控移動的小球

今天我們就來繪製一個能跟隨手指的觸控而移動的小球。其實很簡單,只要我們能夠運用自定義view中的

onTouchEvent方法我們就可以很輕易的做到。

第一步:我們使用自定義view繪製一個小球:

    private float x ;
    private float y ;
    Paint paint = new Paint();

    public myView(Context context) {
        super(context);
    }

    public myView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        x = getWidth()/2;//獲取x y座標
        y = getHeight()/2;
    }

    @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);
        //設定顏色為紅色
        paint.setColor(Color.RED);
        canvas.drawCircle(x,y,100,paint);
        }

第二步:想辦法讓小球跟著手指移動:

我們想讓小球跟著手指觸控移動,就得需要重寫onTouchEvent方法,我們在這個方法裡面重新獲取x,y座標,然後再重新整理檢視,就起到了移動的xiao效果

    @Override
    public boolean onTouchEvent(MotionEvent event) {

        x = event.getX();
        y = event.getY();

        invalidate();

        return true;//這裡面必須返回true,否則小球移動不了。
    }