Android 简单实现可全屏拖动,可点击的View

这里写图片描述
首先,我们都知道,拖动一个view,需要给它设置touchListener,或者重写他的touchEvent。我们以ImageView为例,自定义一个DragView,继承ImageView。
单纯的只是想让view拖动,我们只需要在ACTION_DOWN中记录初始位置,在ACTION_MOVE中记录拖动后手指移动的距离,计算出这个move操作后哦,view的四个边界坐标应该所在的位置,然后layout一遍。

               case MotionEvent.ACTION_DOWN:
                    downX = event.getX();
                    downY = event.getY();
                    break;
                case MotionEvent.ACTION_MOVE:
                    //width和height为控件的宽高
                    final float xDistance = event.getX() - downX;
                    final float yDistance = event.getY() - downY;
                    int l,r,t,b;
                    l = (int) (getLeft() + xDistance);
                    r = l+width;
                    t = (int) (getTop() + yDistance);
                    b = t+height;
                    this.layout(l, t, r, b);
                    break;

当我们如此实现后,发现view拖动到超出边缘位置的时候,出现各种显示不正常的问题。所以,我们需要控制view的layout,不能超过父控件的边界。注意了,我们不能超出的,是父控件的边界,可是我们在这个自定义的拖动控件中,

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值