前言
实现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