Android小技巧:实现View的拖拽

这篇博客介绍了如何在Android中实现View的拖拽功能,强调了通过offsetLeftAndRight和offsetTopAndBottom方法进行移动的优势,这两种方法不会影响原有布局。内容包括获取触摸位移信息、设置OnTouchListener以及避免使用动画或更改margin的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

实现View的拖拽,其实原理很简单。无非就是获取手指的位移信息,然后view根据手指的位移信息,移动对应的位置。

首先是获取手机的位移信息就可以根据需求不同分为两种

  • 拖拽view本身,view实现移动。则设置view的setOnTouchListener。
  • 在activity中随意滑动,view都会反应出动作。则重写activity onTouchEvent方法。

而移动的方法嘛,也有几种

  • 给view设置补间动画,动画时间为0.(不推荐,因为移动的只是view的影子,本体还在原地)
  • 更改view 的margin。(不推荐,会影响viewgroup的布局排布)
  • 根据属性动画原理,更改setTranslationX和setTranslationY.(推荐此方法,不会影响原有的布局排布)
  • 使用view的layout方法(此方法也同样不会影响,整体的布局)
  • 使用view的offsetLeftAndRight,offsetTopAndBottom 方法(推荐此方法,是layout的进化版本)

代码

public class ViewTestActivity extends AppCompatActivity {
    private static final String TAG = "ViewTestActivity";
    private TextView mTv1,mTv2;
    private double lastx,lastY;
    @Override
    protect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值