可拖拽可点击控件手势的处理

在onTouchEvent()方法中处理 ACTION_DOWN、ACTION_MOVE 和 ACTION_UP 三个事件,使用全局标记 isDrag 表示是否正在被拖拽。

  • 在 ACTION_DOWN 时设置为 false 并且记录当前的x 和 y的值。

  • 在 ACTION_MOVE 时记录当前移动的距离,rawX - lastX 为当前x轴移动距离,rawY - lastY 为纵轴移动距离。需要重新绘制当前view(位置已经发生改变)

  • 在ACTION_UP 时设置press状态为 false,根据计算的结果判断拖拽距离是否超过阈值(自行设定),超过则认为是拖拽手势并对 view 进行动画(需要确定移动距离以及是否超出屏幕边缘,超出则放置在边缘。这里需要计算screenWidth 、screenHeight statusBarHeight以及可能存在的虚拟键的 height )。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容