如何在Android中使用ViewDragHelper实现图片下拽返回

  介绍

如何在Android中使用ViewDragHelper实现图片下拽返回?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。

<强>什么是ViewDragHelper

具体实现之前先简单介绍下什么是ViewDragHelper。

ViewDragHelper是支持v4兼容包中的一个工具类,用来简化自定义ViewGroup中的手势处理。

使用ViewDragHelper可以轻松实现ViewGroup视图里的拖拽操作,这里介绍下使用ViewDragHelper里几个重要步骤。

<强>初始化

通过静态方法创建:ViewGroup即为当前容器;灵敏度为拖拽的灵敏度,默认为1;调为配置拖拽中的各种逻辑处理。

mViewDragHelper =, ViewDragHelper.create (ViewGroup,,回调);   …   或   …   mViewDragHelper =, ViewDragHelper.create (viewGroup,敏感性,,回调),

<强>调

这里仅列出我们需要使用到的一些回调方法:

public  abstract  static  class  Callback  {   ,,,/* *   ,,,,*,当子,View 被拖动改变位置时回调此方法   ,,,,*,   ,,,,*,@param  changedView 当前子,视图   ,,,,*,@param  left 当前子,View 的最新,X 坐标   ,,,,*,@param  top 当前子,View 的最新,Y 坐标   ,,,,*,@param  dx 当前子,View 的最新,X 坐标较上次,X 的位移量   ,,,,*,@param  dy 当前子,View 的最新,Y 坐标较上次,Y 的位移量   ,,,*/,,,public  void  onViewPositionChanged (@NonNull  View  changedView,, int 左,int ,, int  dx,   ,,,,,,,int  dy), {   ,,,}         ,,,/* *   ,,,,*,当子,View 被释放后回调此方法   ,,,,   ,,,,*,@param  releasedChild 当前子,视图   ,,,,*,@param  xvel  X 子,View 被释放时,用户手指在屏幕上滑动的横向加速度   ,,,,*,@param  yvel  Y 子,View 被释放时,用户手指在屏幕上滑动的纵向加速度   ,,,*/,,,public  void  onViewReleased (@NonNull  View  releasedChild,, float  xvel,, float  yvel), {}      ,,,/* *   ,,,,*,限制子,View 水平拖拽范围。   ,,,,*,   ,,,,*,如果返回,0,则不能进行水平拖动,如果要实现拖拽,返回值,祝辞,0,即可。   ,,,,   ,,,*/,,,public  int  getViewHorizontalDragRange (@NonNull  View 孩子),{   ,,,,,return  1;   ,,,}      ,,,/* *   ,,,,*,限制子,View 纵向拖拽范围。   ,,,,*,   ,,,,*,如果返回,0,则不能进行纵向拖动,,我们要实现拖拽,返回值,祝辞,0,即可。   ,,,,   ,,,*/,,,public  int  getViewVerticalDragRange (@NonNull  View 孩子),{   ,,,,,return  1;   ,,,}      ,,,/* *   ,,,,*,判断当前触摸的,View 能否被捕获进行拖拽,如果返回,true 则可以进行拖拽。   ,,,*/,,,public  abstract  boolean  tryCaptureView (@NonNull  View 孩子,,int  pointerId);      ,,,/* *   ,,,,*,限制当前,View 的横向拖拽范围,也可说是我们可以动态修正,View 的,top 坐标,比如我们想限制,View 只在容器内部拖动   ,,,,   ,,,,*,@param  child 当前拖动的,视图   ,,,,*,@param  left  View 上次的,x 坐标,+,手指移动的,x 轴位移量   ,,,,*,@param  dx 手指移动的位移量   ,,,,*,@return 修正后的,x 坐标,直接返回,left 表示不限制水平拖拽范围,拖到哪儿就哪儿   ,,,*/,,,public  int  clampViewPositionHorizontal (@NonNull  View 孩子,,int 左,int  dx), {   ,,,,,return ;   ,,,}      ,,,/* *   ,,,,*,限制当前,View 的纵向拖拽范围,也可说是我们可以动态修正,View 的,top 坐标,比如我们想限制,View 只在容器内部拖动   ,,,,   ,,,,*,@param  child 当前拖动的,视图   ,,,,*,@param  top  View 上次的,y 坐标,+,手指移动的,y 轴位移量   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android中使用ViewDragHelper实现图片下拽返回