Android随手指移动的DragView(一)——获取偏移量

想要DragView随着手指移动首先得获取偏移量,获取偏移量一般有2种思路。

(1),通过event.getX()。

    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        int x = (int) event.getX();
        int y = (int) event.getY();
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                mLastX = x;
                mLastY = y;
                break;
            case MotionEvent.ACTION_MOVE:
                int offsetX = x - mLastX;
                int offsetY = y - mLastY;

                //TODO在这里处理其他逻辑

                break;
            case MotionEvent.ACTION_UP:
                break;
        }
        //注意这里得返回true,或者给DragView加上android:clickable=true。
        return true;
    }

(2),通过event.getRawX()。

     @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        int rawX = (int) event.getRawX();
        int rawY = (int) event.getRawY();
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                mLastRawX = rawX;
                mLastRawY = rawY;
                break;
            case MotionEvent.ACTION_MOVE:
                int offsetX = rawX - mLastRawX;
                int offsetY = rawY - mLastRawY;

                //TODO在这里处理其他逻辑

                //与第一种方法的不同之处    
                mLastRawX= rawX;
                mLastRawY= rawY;
                break;
            case MotionEvent.ACTION_UP:
                break;
        }
        return true;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值