【安卓笔记】GestureDetector浅析

2023-10-16 19:58

本文主要是介绍【安卓笔记】GestureDetector浅析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GestureDetector类用于检测一系列由  MotionEvent提供的 手势事件,当特定的手势事件发生时,通过调用
GestureDetector.OnGestureDetectorListener接口中定义的回调函数通知用户。
使用方式:
1.为你的view创建一个 GestureDetector的实例;
2.复写view的onTouchEvent,并调用 GestureDetector的OnTouchEvent方法。

使用示例:
package com.example.gesturedetectordemo;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;/*** @author Rowand jj**GestureDetector的使用步骤:*    1.创建GestureDetector实例*    2.复写view类的onTouchEvent,调用GestureDetector的onTouchEvent*/
public class MainActivity extends Activity implements OnGestureListener
{private static final String TAG = "MainActivity";private GestureDetector mGestureDector = null;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mGestureDector = new GestureDetector(this,this);}@Overridepublic boolean onTouchEvent(MotionEvent event){//监听手势事件return mGestureDector.onTouchEvent(event);}@Overridepublic boolean onDown(MotionEvent e){Log.i(TAG,"onDown run..");return false;}@Overridepublic void onShowPress(MotionEvent e){Log.i(TAG,"onShowPress run..");}@Overridepublic boolean onSingleTapUp(MotionEvent e){Log.i(TAG,"onSingleTapUp run..");return false;}@Override// 用户按下触摸屏,并拖动public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY){Log.i(TAG,"onScroll run..");return false;}@Overridepublic void onLongPress(MotionEvent e){Log.i(TAG,"onLongPress run..");        }//用户按下触摸屏、快速移动后松开@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY){Log.i(TAG,"onFling run..");return false;}}
测试:
点击屏幕:

点击屏幕不松手:

点击屏幕并拖动:

点击屏幕迅速滑动并松手:



这篇关于【安卓笔记】GestureDetector浅析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220442

相关文章

浅析Java如何保护敏感数据

《浅析Java如何保护敏感数据》在当今数字化时代,数据安全成为了软件开发中至关重要的课题,本文将深入探讨Java安全领域,聚焦于敏感数据保护的策略与实践,感兴趣的小伙伴可以了解下... 目录一、Java 安全的重要性二、敏感数据加密技术(一)对称加密(二)非对称加密三、敏感数据的访问控制(一)基于角色的访问

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问