android 手势操作GestureDetector

利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,举例说明:

 

public class ActivityMain extends Activity implements GestureDetector.OnGestureListener { 
 
    GestureDetector detector; 
 
    /** 
     * Called when the activity is first created. 
     */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        //构造GestureDetector;Context context, OnGestureListener listener 
        detector = new GestureDetector(this, this); 
 
        detector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() { 
           //短快的点击算一次单击 
            @Override 
            public boolean onSingleTapConfirmed(MotionEvent e) { 
                System.out.println("onSingleTapConfirmed"); 
                return false; 
            } 
            //双击时产生一次 
            @Override 
            public boolean onDoubleTap(MotionEvent e) { 
                System.out.println("onDoubleTap"); 
                return false; 
            } 
          //双击时产生两次 
            @Override 
            public boolean onDoubleTapEvent(MotionEvent e) { 
                System.out.println("onDoubleTapEvent"); 
                return false; 
            } 
        }); 
    } 
 
    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
        return detector.onTouchEvent(event); 
    } 
    // 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发 
    @Override 
    public boolean onDown(MotionEvent e) { 
        System.out.println("onDown"); 
        return false; 
    } 
  // 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发    
   // 注意和onDown()的区别,强调的是没有松开或者拖动的状态 
    @Override 
    public void onShowPress(MotionEvent e) { 
 
    } 
    //用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发 
    @Override 
    public boolean onSingleTapUp(MotionEvent e) { 
        System.out.println("onSingleTapUp"); 
        return false; 
    } 
   // 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发 
    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
        System.out.println("onScroll"); 
        return false; 
    } 
   // 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发 
    @Override 
    public void onLongPress(MotionEvent e) { 
        System.out.println("onLongPress" + e.getEventTime()); 
    } 
   //用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发 
    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
        System.out.println("onFling: " + (e1.getX() - e2.getX()) + " " + (e1.getY() - e2.getY()) + " " + velocityX + " " + velocityY); 
        System.out.println(e1.getY()); 
        return false; 
    } 
} 
 
【MCU】一种基于RTOS的无应答重发机制 文章目录一、背景描述二、结构框图三、基于RTOS的信号量的实现(3-1)思路描述(3-2)步骤(3-2-1)定义超时重发信号量(3-2-2)定义发送线程入口(3-2-3)定义接收线程入口四、基于定时器的实现(4-1)思路描述(4-2)步骤(4-2-1)创建定时器(4-2-2)定义定时器超时处理函数(4-2-3)定义发送线程入口(4-2-4)定义接收线程入口 一、背景描述 ​ 在微控制器之间进行数据通信时,大多需要添加无应答重发机制,以增强数据交互和通信的稳定性。 在使用UART通信的双方设备,当一次数据传输 阅读详情

相关推荐

[Vue][面试]谈谈你对MVC、MVP和MVVM的理解

谈谈你对MVC、MVP和MVVM的理解 答题思路:此题涉及知识点很多,很难说清楚,说透彻,因为MVC,MVP这些我们前端程序员自己甚至都没用过。但是恰恰反映了前端这些年从无到有, 从有到优的变迁过程,因此沿此思路回答将十分清除。 Web1.0时代 在web1.0时代,并没有前端的概念。开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常由多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、C#/Java/PHP代码, 系统整体架构可能如下图所

你好,欢迎光临! 723

Android GestureDetector详解

1. 事件监听的方法 在android应用层上主要有两个层面的触摸事件监听,一个是Activity层,另一个是View层。方法主要有三种: 第一是Activity中重写父类中的public boolean onTouchEvent(MotionEvent event)方法; @...

假装你是大灰狼的专栏 1万+

反激电源RCD尖峰吸收电路的原理以及调试

反激电源RCD尖峰吸收电路的原理以及调试

mnmmnmn的博客 9249

Android手势监听类GestureDetector的使用

在使用自定义视图的时候,对触屏事件的处理是必不可少的,有能力的可以自己写代码处理,这样更加的灵活。如果不想这么麻烦,Android提供了一个手势监听类GestureDetector,可以供我们使用。GestureDetector使用很方便,提供了单击,双击,长按等操作的处理,但是一般的定义界面都比较复杂,还用很多需要注意的地方,在这儿总结一下GestureDetector的使用。 首先新建一个空

萌萌的It人 www.itmmd.com 7027

【Qt】QByteArray详解

对象共享同一份数据,直到修改时才进行深拷贝,以节省内存和计算资源。:可存储任意二进制数据(如图片、音频、协议数据),不依赖字符编码。与编码(如 UTF-8、Latin-1)之间的桥梁(例如。• 补零规则确保奇数字符串能正确解析,避免数据截断。:内部自动分配和释放内存,无需手动管理。将输入的字符串视为十六进制编码数据,返回实际数据长度(不包括结尾的。的输入必须是有效的十六进制字符(,但针对 Qt 框架做了优化。:处理加密后的二进制结果(如。• 如果输入字符串长度为奇数,• 若输入长度为奇数,自动在。

CSUC的博客 1597

PLC1200使用CB1241RS485通讯模块做从站进行Modbus Rtu通信

添加新设备(PLC)->设备和网络管理->点击PLC->看到硬件目录选择通信板->点到点->CB1241(RS485)->看到6ES7241-1CH30-1XB0选择添加,如图。指向Modbus保持寄存器数据块的指针 我这里指向了自定义的DB块数据中一个INT数组。在通信->通信处理模块->MODBUS(选择不带RTU的通信指令块)注意:接线时,TRA接485调试模块的B- TRB接调试模块的A+组态后的硬件标识符 270 对应自己组态后自动生成的。1:事务完成,且无任何错误。波特率对应自己使用的。

swmyaopeng的博客 2万+

手势识别器UIGestureRecognizer实现手机的各种手势操作功能

手势识别器可以实现好多的手势功能,比如单击,双击,移动,旋转,滑动,长按等等。 这些功能都是通过创建相关类的对象,并调用相关的方法来实现的。单击,双击主要是通过UITapGestureRecognizer然后通过判断UITapGestureRecognizer的对象pDoubleTap.numberOfTapsRequired =2;来实现单击与双击的区分。 而移动主要是通过 UIPan

2409

Profinet从站开发初体验:用p-net开源库和树莓派快速搭建一个IO设备模拟器

本文详细介绍了如何使用p-net开源库和树莓派快速搭建Profinet从站IO设备模拟器。从开发环境准备、p-net源码编译到设备模拟器功能实现,提供了全流程实战指南,帮助开发者快速掌握工业通信协议开发技巧,适用于工业自动化领域的设备互联测试与验证。

weixin_30384217的博客 383

Android手势检测——GestureDetector全面分析

出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 博客地址:http://blog.youkuaiyun.com/totond 本文原创,转载请注明本出处! 前言  在很多视频播放器中,都存在使用不同的手势来控制进度、亮度\音量和暂停播放等功能。Android提供了一个GestureDetector来帮助我们识别一些基本的触摸手势(还有ScaleGestureDetector可以识

totond的博客 3万+

自然语言处理:长文本场景下的关键词抽取实践

自然语言处理:长文本场景下的关键词抽取实践

丨汀、的博客 2076

黑猫带你学eMMC协议第4篇:eMMC概述

1 前言 声明: 本文依据eMMC JEDEC5.1协议及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 本文大约3000字,从emmc的内部结构框架、供电、总线、寄存器等各方面进行框架性的介绍,本章节内容不需要深入研究,读完本篇文章,只要能对emmc有个框架下的了解,就可以了。 2 内部结构框架 由图可以看出,emmc内部由两块组成:控制器 + 存储介质。emmc内部存储介质绝大部分为nand flash。 众所周知,我们需要存储数据到nand flash中,并

黑猫奥利奥的博客 3340

Android 手势操作GestureDetector

在很多应用中我们经常会看到一些不同手势的点击事件,例如QQ的消息列表,我们可以通过左滑消息来选择删除或者置顶或者标记为已读,我们也可以通过右滑拖出QQ菜单。有些应用中还会有长按,双击等手势。但是一般情况下,这些操作的手势都不是很复杂,不会出现什么右击左击,或者三连击这样的手势。因为开发应用的原则就是简单化,让别人可以一看就懂,一看就会。      今天我们就来学习一下Android中手势的操作。

To_be_Designer 3860

【OpenClaw从入门到精通】第60篇:多智能体协同实战——用“龙虾”搭建你的数字员工团队(2026企业版)

2026年AI Agent企业落地的核心趋势,正从“单Agent单兵作战”转向“多智能体协同组网”。本文以全球开发者先锋大会“百虾大战”真实案例为蓝本,深度拆解OpenClaw多智能体协同的技术内核——三层解耦架构(模型层-技能层-网关层),系统搭建包含项目经理、架构师、执行者、质量把关者的4大核心Agent团队。通过三种主流协作架构对比、全链路配置代码实操、故障自愈实战演练,结合电商新品上架虚拟场景全流程演示,解决企业多Agent部署中的权限隔离、任务协同、运维自治三大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 767

Android之GestureDetector-简单手势操作及通过手势缩放图片(1)

有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊![外链图片转存中…(img-9qu8fQhp-1714709931668)]

2301_76348171的博客 627

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android Tip : Android GestureDetector 手势识别 抬起 操作

【Android Tip】【Android GestureDetector 手势识别 抬起 操作】关于GestureDetector的用法,大家自行Google这里只说一个小点:就是手势监听中缺失对下面情况的监听:down->scroll->up(手指离开屏幕的时候没有在移动,onFling不能捕捉到这个事件)解决方案: 在onTouchEvent方法中重新捕捉这个事件 我们知道,Android

二手认知 2493

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

第任八十八讲:Android之触摸及手势操作GestureDetector

忍别人所不能忍的痛,吃别人所别人所不能吃的苦,是为了收获得不到的收获。 本讲内容:GestureDetector(Gesture:手势Detector:识别)类 一、GestureDetector类认识 GestureDetector类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestur

245

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 修改ArrayList里面的内容
下一篇: Android 对话框(Dialog)大全
whatsyourname
博客等级 码龄23年 13粉丝 326原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值