自定义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,否则小球移动不了。
    }

 

猜你喜欢

转载自blog.csdn.net/ykx_1448488568/article/details/82459272