首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏今天学习了吗

    GestureDetector源码解析

    1 简介     手势检测器GestureDetector用于帮助开发者辨别一些基本的触摸手势,如点击、长按、滑动等。这使得开发者可以专注于业务处理,不用再花精力去处理手势识别相关逻辑。      GestureDetector类包含三个监听接口OnGestureListener, OnDoubleTapListener, OnContextClickListener,一个外部类SimpleOnGestureListener GestureDetector的核心逻辑是放在onTouchEvent中的,我们先来看下onTouchEvent的结构: /** * Analyzes the given motion event 注意,handleMessage中的回调,参数传入的都是DOWN事件的MotionEvent. 3.3控制变量相关     GestureDetector的控制变量主要是以下这几个 private boolean 总结     通过上面的源码拆解分析,可以看出来GestureDetector如何通过控制变量,handler和MotionEvent共同来判断触摸行为的。     

    66800发布于 2021-10-16
  • 来自专栏算法微时光

    Android之GestureDetector使用

    GestureDetector 在 android 开发过程中,经常需要对一些手势,如:单击、双击、长按、滑动、缩放等,进行监测。 这时也就引出了手势监测的概念,所谓的手势监测,也就是GestureDetector 。 image.png Android sdk给我们提供了GestureDetector(类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。 GestureDetector这个类对外提供了两个接口和一个外部类 接口:OnGestureListener,OnDoubleTapListener 内部类:SimpleOnGestureListener GestureDetector.OnGestureListener 监听类中有六个函数要重写: OnDown(MotionEvent e) 用户按下屏幕就会触发; onShowPress(MotionEvent

    1.1K10编辑于 2021-12-06
  • 来自专栏程序员修炼之路

    聊聊Android中的手势处理GestureDetector

    手势检测通常通过触摸事件进行,而GestureDetector是一个用于识别和处理标准手势(如单击、长按、滑动、双击等)的方便工具类。 GestureDetector GestureDetector是一个用于捕获复杂手势的类。 3、 GestureDetector的使用: 创建一个GestureDetector对象,并传入一个OnGestureListener或SimpleOnGestureListener的实例。 GestureDetector的工作原理 GestureDetector通过分析MotionEvent中提供的数据来判断与手势相关的时机。 例如,对于双击手势,GestureDetector会测量两次连续单击之间的时间间隔。

    1.3K10编辑于 2024-11-18
  • 来自专栏程序那些事

    flutter系列之:移动端的手势基础GestureDetector

    flutter中的手势支持叫做GestureDetector,一起来看看flutter中的手势基础吧。Pointers和Listener我们先来考虑一下最简单的手势是什么呢? 要想监听上面的这些事件,我们可以使用GestureDetector,先看下GestureDetector的定义:class GestureDetector extends StatelessWidget { GestureDetector({ Key? 如果GestureDetector中并没有child,那么其作用范围就是GestureDetector的父widget的范围。 总结手势识别是移动端的优势项目,大家可以尝试在需要的地方使用GestureDetector,可以达到意想不到的用户效果哦。

    1.9K20编辑于 2022-08-29
  • 来自专栏全栈程序员必看

    android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)

    大伙第一反应绝对是Google提供给我们的GestureDetector类,没错今天我们就使用使用这个类来给大家完毕以上的需求! 第一:将主逻辑代码类继承FragmentActivity类并实现OnGestureListener监听和OnTouchListener监听,同一时候在onCreate方法中创建GestureDetector GestureDetector gestureDetector = new GestureDetector(this, this); 第二:获取UI布局中定义的控件 这些你全然能够使用xUtils第三方工具的注解来完毕下面操作 = new GestureDetector(this, this); //须要实现OnGestureListener监听 root_layout.setLongClickable(true); gestureDetector.setIsLongpressEnabled MotionEvent e) { firstScroll = true;// 设定是触摸屏幕后第一次scroll的标志 return false; } 通过在onTouch()方法中调用gestureDetector.onTouchEvent

    2.9K30编辑于 2022-07-11
  • Flutter 零基础入门(二十五):手势 GestureDetector 与 InkWell

    一、为什么需要 GestureDetector 和 InkWell? Flutter 的一个核心设计理念: 任何 Widget 都可以有交互 GestureDetector 和 InkWell 的作用是: 给任意 Widget 添加点击、滑动等手势能力 二、GestureDetector :最基础、最自由 1️⃣ 什么是 GestureDetectorGestureDetector 是一个 手势监听器,本身不负责 UI。 九、新手常见误区总结 ❌ 用 GestureDetector 却想要水波纹 ❌ 忘记 Material 导致 InkWell 没效果 ❌ 整个页面都包 GestureDetector ❌ borderRadius

    14810编辑于 2026-01-27
  • 来自专栏Android知识分享

    Carson带你学Android:手把手教你学会手势识别应用 GestureDetector

    GestureDetector gestureDetector=new GestureDetector(GestureDetector.OnGestureListener listener); // 2 GestureDetector gestureDetector=new GestureDetector(Context context,GestureDetector.OnGestureListener GestureDetector gestureDetector=new GestureDetector(Context context,GestureDetector.SimpleOnGestureListener GestureDetector gestureDetector=new GestureDetector(GestureDetector.OnGestureListener listener); GestureDetector gestureDetector=new GestureDetector(Context context,GestureDetector.OnGestureListener

    1.9K11编辑于 2022-03-24
  • 来自专栏github@hornhuang

    看完这篇还不会 GestureDetector 手势检测,我跪搓衣板!

    手势监听的使用 ----  GestureDetector 使用 我的理解是 GestureDetector 是 Android 中,专门用来进行手势监听的一个对象,在他的监听器中,我们通过传入 MotionEvents 内部会自动创建一个 Handler 用于处理数据,所以如果你在主线程中创建 GestureDetector,那么这个 GestureDetector 内部创建的 Handler 会自动获得主线程的 Looper final GestureDetector.SimpleOnGestureListener listener = new GestureDetector.SimpleOnGestureListener( final GestureDetector.SimpleOnGestureListener listener = new GestureDetector.SimpleOnGestureListener( private final GestureDetector.SimpleOnGestureListener listener = new GestureDetector.SimpleOnGestureListener

    2.1K20发布于 2021-09-24
  • 来自专栏Android知识分享

    Android 手势识别应用:手把手教你学会 GestureDetector(含实例讲解)

    GestureDetector gestureDetector=new GestureDetector(GestureDetector.OnGestureListener listener); // 2 GestureDetector gestureDetector=new GestureDetector(Context context,GestureDetector.OnGestureListener GestureDetector gestureDetector=new GestureDetector(Context context,GestureDetector.SimpleOnGestureListener GestureDetector gestureDetector=new GestureDetector(GestureDetector.OnGestureListener listener); GestureDetector gestureDetector=new GestureDetector(Context context,GestureDetector.OnGestureListener

    12.3K41发布于 2020-06-10
  • 来自专栏风吹杨柳

    2014-11-8Android学习------手势识别事件的处理GestureDetector--------动画Animation学习篇

    mGestureDetector; public MyGesture() { mGestureDetector = new GestureDetector(this mGestureDetector.setIsLongpressEnabled(true); } /* * 在onTouch()方法中,我们调用GestureDetector 的onTouchEvent()方法,将捕捉到的MotionEvent交给GestureDetector * 来分析是否有合适的callback函数来处理用户的手势 */ mGestureDetector; public MyGesture() { mGestureDetector = new GestureDetector(new , GestureDetector.OnGestureListener private class MySimpleGesture extends SimpleOnGestureListener

    1K40编辑于 2022-03-07
  • 来自专栏代码男人

    详解Android View的事件体系 之View基础(二)

    首先我们看一下官方API对GestureDetector的介绍: ? 名称 作用 GestureDetector.OnContextClickListener 上下文单击 GestureDetector.OnDoubleTapListener 双击 GestureDetector.OnGestureListener 检测到手势 GestureDetector.SimpleOnGestureListener 事件子集 1.1.1 GestureDetector.OnGestureListener           = new GestureDetector(this); 初始化gestureDetector,在View的OnTouchEvent事件中,交给gestureDetector来处理即,gestureDetector.onTouchEvent 1.1.2 GestureDetector.OnDoubleTapListener 接着我们让View实现GestureDetector.OnDoubleTapListener接口,我们可以看到该接口实现了下列方法

    75830发布于 2019-01-10
  • 来自专栏米扑专栏

    Android 滑动效果入门篇(一)—— ViewFlipper

    gestureDetector = null; private ViewFlipper viewFlipper = null; private Activity mActivity = null 及其onFling事件,具体实现步骤如下: 1、Activity实现android.view.GestureDetector.OnGestureListener 监听接口,并声明gestureDetector = new GestureDetector(this); 用于监听手势事件 2、在Activity的成员函数onTouchEvent(MotionEvent event)中,注册GestureDetector.OnGestureListener 手势监听的gestureDetector.onTouchEvent(event);事件接口 3、在GestureDetector.OnGestureListener回调函数onFling(MotionEvent GestureDetector.OnGestureListener

    2.6K10发布于 2019-02-19
  • 来自专栏陶士涵的菜地

    [android] 手机卫士手势滑动切换屏幕

    定义手势识别器 获取手势识别器GestureDetector对象,通过new GestureDetector(context,listener),参数:上下文,监听器 匿名内部类实现简单手势监听器SimpleOnGestureListener 对象的getRawX()可以获取到X轴的坐标 使用手势识别器识别手势 重写activity的onTouchEvent()方法,获取到手势在界面上的滑动事件 传递进来一个参数MotionEvent对象 调用GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // 实例化 gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {

    2.5K20发布于 2019-09-10
  • 来自专栏JetpackCompose M3

    安卓软件开发:Java和Kotlin实现首页壁纸的手势切换功能

    实例 为了实现手势检测,使用 GestureDetector 来处理用户的滑动操作。 四、学习技术笔记 4.1 基本概念 GestureDetectorGestureDetector 是一个用于检测用户手势的工具类,可以识别各种手势操作,如轻触、双击、长按、滑动、快速滑动等。 基本流程 创建 GestureDetector 实例:在 MainActivity 中,创建一个 GestureDetector 实例,自定义的 GestureListener 传入。 五、为啥不能使用ViewPager2实现,和GestureDetector 有什么区别和优势? 我详细对比 ViewPager 和 GestureDetector,分析两者的使用场景和各自的优势,GestureDetector 更适合壁纸切换功能。

    1.2K151编辑于 2024-09-18
  • 来自专栏Sorrower的专栏

    Android手势操作耍起来!

    这里来看下谷歌提供的GestureDetector类. 搭配属性动画使用, 效果更好哦. ---- 初步了解手势操作 先来一段可以快速了解手势操作类的代码. 这里用到了GestureDetector.SimpleOnGestureListener(), 可以暂时理解为是一个适配器, 快速实现GestureDetector.OnGestureListener接口中要实现的方法 public class MainActivity extends AppCompatActivity { private GestureDetector mGestureDetector; 为什么可以直接加入呢, 因为GestureDetector.SimpleOnGestureListener()之中也实现了GestureDetector.OnDoubleTapListener中的内容. 如果你不使用GestureDetector.SimpleOnGestureListener()的话, 可以使用如下代码实现GestureDetector.OnDoubleTapListener接口.

    1.1K30发布于 2018-09-04
  • 来自专栏指点的专栏

    Android 中 View 的手势事件处理

    我们常用的两个接口是: GestureDetector.GestureListener GestureDetector.OnDoubleTapListener 我们下面来看一下 GestureDetector 一般来说,要使用 GestureDetector 类来检测一个 View 中的手势事件,我们会通过以下步骤: 1、新建一个 GestureDetector 对象并且设置它的手势监听器接口对象 2、这个 的触摸事件交给 GestureDetector 对象去处理,GestureDetector 对象会将触摸事件交给其设置的手势监听接口处理 3、根据要求实现 GestureDetector 类中提供的手势监听接口来识别对应的触摸事件 接口,因为 GestureDetector 的构造方法中必须要有一个 GestureDetector.OnGestureListener 对象作为参数,得到 GestureDetector 对象之后调用 GestureDetector 对象处理: gestureDetector.onTouchEvent(event); 对于这个类,小伙伴们可以自己尝试一下。

    2.1K20发布于 2019-01-18
  • 来自专栏程序那些事

    flutter系列之:移动端手势的具体使用

    简介之前我们介绍了GestureDetector的定义和其提供的一些基本的方法,GestureDetector的好处就是可以把任何一个widget都赋予类似button的功能。 今天将会通过几个具体的例子来讲解一下GestureDetector的具体使用。 最简单的办法就是将其使用GestureDetector包装起来,如下所示:GestureDetector( // The custom button child: Container 那么InkWell和GestureDetector有什么联系呢?InkWell和GestureDetector很类似,都提供了对手势的支持。 在使用上,InkWell和GestureDetector也很类似,我们可以完全照搬GestureDetector的用法。

    1.5K10编辑于 2022-12-19
  • 来自专栏李蔚蓬的专栏

    Flutter | 手势操作详解、单独一种类型的事件处理顺序、多种类型的事件混合时的处理顺序

    GestureDetector生命周期 ? 长按事件 案例 GestureDetector的child,用来放 需要实现 某种手势事件 的组件; 【这里GestureDetector封装的是 显示 模拟手机号 的文本组件】: ? 关键代码: GestureDetector gestureDetectorUsage1(int index) { return GestureDetector( /************ //Tab 与 Pan 混合 GestureDetector gestureDetectorUsage2(int index) { return GestureDetector( /*** 代码: //垂直滑动 与 Pan 混合 GestureDetector gestureDetectorUsage3(int index) { return GestureDetector(

    2.2K20发布于 2020-07-07
  • 来自专栏刘晓杰

    OnGestureListener探索

    OnGestureListener 先看测试代码 public class MyView extends View implements OnGestureListener { private GestureDetector gestureDetector; public MyView(Context context, AttributeSet attrs) { super(context, attrs ); gestureDetector = new GestureDetector(context, this); gestureDetector.setIsLongpressEnabled (true); } @Override public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent

    60730发布于 2019-02-21
  • 来自专栏阿策小和尚

    【Flutter 专题】89 图解基本 Overlay 悬浮新手引导

    : <Widget>[Positioned( top: (height - 200) * 0.5, left: (width - 200) * 0.5, child: GestureDetector : <Widget>[Positioned( top: (height - 200) * 0.5, left: (width - 200) * 0.5, child: GestureDetector Widget>[ Positioned(top: (height - 200) * 0.5 - 50, left: (width - 200) * 0.5 - 50, child: GestureDetector children: <Widget>[ Positioned(top: (height - 200) * 0.5, left: (width - 200) * 0.5, child: GestureDetector Widget>[ Positioned(top: (height - 200) * 0.5 + 50, left: (width - 200) * 0.5 + 50, child: GestureDetector

    3.5K41发布于 2020-05-28
领券