246_自定义随意拖拽的控件

本文介绍了一种自定义控件实现方式,通过监听触摸事件来实现控件的自由拖拽功能。具体实现了在移动设备上根据手指的移动来重新定位控件的位置。










自定义随意拖拽的控件
其实就是根据我们手指移动,
然后去重新定位这个View




    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            
            //当动作为下落时,获取xy
            case MotionEvent.ACTION_DOWN:
                x1 = (int) event.getX();
                y1 = (int) event.getY();
                break;
            
            //当动作为移动时
            case MotionEvent.ACTION_MOVE:


                //先获取上下左右
                int left = getLeft();
                int top = getTop();
                int right = getRight();
                int bottom = getBottom();


                //获取此时的xy
                int x2 = (int) event.getX();
                int y2 = (int) event.getY();


                //相减获取移动的差值
                int x = x2 - x1;
                int y = y2 - y1;
                
                //重新去定位View
                layout(left + x, top + y, right + x, bottom + y);
                break;
        }
        return true;
    }







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值