当前位置: 首页 > news >正文

Android手势识别类,GestureDetector,ScaleGestureDetector

Android程序使用中会有很多的手势,双击、长按、滑动、缩放等,我们可以通过手势识别类GestureDetectorScaleGestureDetector进行识别。

1.GestureDetector

(1) 包含方法

onDown  按下触发。

onShowPress  按下但尚未松开或移动手指时调用。

onSingleTapUp  单点后抬起触发。

onScroll  滑动触发。 motionEvent:按下事件;motionEvent1:当前事件;distanceX:在x轴上的滑动距离;distanceY:在y轴上的滑动距离。

onLongPress  长按触发。

onFling  迅速滑动后抬起手指时触发。motionEvent:按下事件;motionEvent1:抬起事件;vx:在x轴上的速度;vy:在y轴上的速度。

(2) 使用GestureDetector

可使用OnGestureListenerSimpleOnGestureListener作为参数;参数使用OnGestureListener需要实现全部方法;参数使用SimpleOnGestureListener只需要实现任意数量的方法。

//参数使用OnGestureListener需要实现全部方法
GestureDetector gestureDetector=new GestureDetector( context , new GestureDetector.OnGestureListener() {public boolean onDown(MotionEvent motionEvent) {//按下触发。return false;}public void onShowPress(MotionEvent motionEvent) {//按下但尚未松开或移动手指时调用。}public boolean onSingleTapUp(MotionEvent motionEvent) {//单点后抬起触发。return false;}public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float distanceX, float distanceY) {//滑动触发。 motionEvent:按下事件;motionEvent1:当前事件;distanceX:在x轴上的滑动距离;distanceY:在y轴上的滑动距离。return false;}public void onLongPress(MotionEvent motionEvent) {//长按触发。}public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float vx, float vy) {//迅速滑动后抬起手指时触发。motionEvent:按下事件;motionEvent1:抬起事件;vx:在x轴上的速度;vy:在y轴上的速度。return false;}
});
//参数使用SimpleOnGestureListener只需要实现任意数量的方法
GestureDetector gestureDetector = new GestureDetector( context , new GestureDetector.SimpleOnGestureListener() {public boolean onScroll( MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {//滑动触发。 motionEvent:按下事件;motionEvent1:当前事件;distanceX:在x轴上的滑动距离;distanceY:在y轴上的滑动距离。return false;}
});

2.ScaleGestureDetector

(1) 包含方法

onScale  缩放时调用。

onScaleBegin  缩放开始时调用。

onScaleEnd  缩放结束时调用。

(2) 使用ScaleGestureDetector

可使用OnScaleGestureListenerSimpleOnScaleGestureListener作为参数;参数使用OnScaleGestureListener需要实现全部方法;参数使用SimpleOnScaleGestureListener只需要实现任意数量的方法。

//参数使用OnScaleGestureListener需要实现全部方法
ScaleGestureDetector scaleGestureDetector=new ScaleGestureDetector( context , new ScaleGestureDetector.OnScaleGestureListener() {public boolean onScale( ScaleGestureDetector scaleGestureDetector) {//缩放时调用。return false;}public boolean onScaleBegin( ScaleGestureDetector scaleGestureDetector) {//缩放开始时调用。return false;}public void onScaleEnd( ScaleGestureDetector scaleGestureDetector) {//缩放结束时调用。}
});
//参数使用SimpleOnScaleGestureListener只需要实现任意数量的方法
ScaleGestureDetector scaleGestureDetector=new ScaleGestureDetector( context ,new ScaleGestureDetector.SimpleOnScaleGestureListener(){public boolean onScale( ScaleGestureDetector scaleGestureDetector) {//缩放时调用。return false;}            
});

相关文章:

  • RT-DETR算法优化改进:Backbone改进 | LSKNet:遥感旋转目标检测新SOTA | ICCV 2023
  • SQL 部分解释。
  • [云原生案例2.3 ] Kubernetes的部署安装 【多master集群架构高可用 ---- (二进制安装部署)】
  • 2023华为ict网络赛道初赛(部分)试题
  • 【chat】2:vs2022 连接远程ubuntu服务器远程cmake开发
  • TDengine数据迁移之数据对比
  • idea生成代码(一):实现java语言的增删改查功能(基于EasyCode插件)支持自定义模板【非常简单】
  • excel用RAND函数生成一个大于0小于1的随机数
  • 使用 HTTP Client 轻松进行 API 测试
  • clickhouse的安装和配置
  • 超详细!必看!!STM32--系统滴答SysTick
  • 鸿蒙系统扫盲(一):鸿蒙OS和开源鸿蒙什么关系?
  • 2023网络钓鱼状况报告:ChatGPT等工具致网络钓鱼电子邮件数量激增1265%
  • Excel表列序号
  • Mysql 和 Redis 数据如何保持一致
  • 【译】JS基础算法脚本:字符串结尾
  • classpath对获取配置文件的影响
  • css的样式优先级
  • Elasticsearch 参考指南(升级前重新索引)
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Javascript弹出层-初探
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • maven工程打包jar以及java jar命令的classpath使用
  • rc-form之最单纯情况
  • Xmanager 远程桌面 CentOS 7
  • 不上全站https的网站你们就等着被恶心死吧
  • 电商搜索引擎的架构设计和性能优化
  • 复杂数据处理
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 聊聊redis的数据结构的应用
  • 区块链将重新定义世界
  • 新手搭建网站的主要流程
  • 因为阿里,他们成了“杭漂”
  • 原生 js 实现移动端 Touch 滑动反弹
  • kubernetes资源对象--ingress
  • ​Python 3 新特性:类型注解
  • (03)光刻——半导体电路的绘制
  • (1)bark-ml
  • (C语言)fgets与fputs函数详解
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计大学生兼职系统
  • (十五)使用Nexus创建Maven私服
  • (算法)N皇后问题
  • (转) ns2/nam与nam实现相关的文件
  • .bat批处理(六):替换字符串中匹配的子串
  • .htaccess 强制https 单独排除某个目录
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net 受管制代码
  • .NET开发者必备的11款免费工具
  • @private @protected @public
  • @requestBody写与不写的情况
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [Angular] 笔记 20:NgContent
  • [C++][基础]1_变量、常量和基本类型