展开

关键词

GestureDetector源码解析

1 简介     手势检测器GestureDetector用于帮助开发者辨别一些基本的触摸手势,如点击、长按、滑动等。这使得开发者可以专注于业务处理,不用再花精力去处理手势识别相关逻辑。      e); } public interface OnContextClickListener {     boolean onContextClick(MotionEvent e); } 3 源码分析     GestureDetector中的逻辑处理可以拆解成三部分,第一部分是在onTouchEvent中的逻辑处理和回调方法,第二部分是通过handler的回调方法,第三部分是控制变量相关的处理。 从源码上看,是通过两个条件来判断的,一是第一次点击的UP事件和第二次点击的DOWN事件之间的时间间隔要在DOUBLE_TAP_TIMEOUT和DOUBLE_TAP_MIN_TIME之间;二是第一次点击的 总结     通过上面的源码拆解分析,可以看出来GestureDetector如何通过控制变量,handler和MotionEvent共同来判断触摸行为的。

10100

Android GestureDetector实现手势滑动效果

本文实例为大家分享了Android GestureDetector实现手势滑动的具体代码,供大家参考,具体内容如下 目标效果: ? MainActivity.java页面: package com.example.gesturedetector; import android.os.Bundle; import android.app.Activity ; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener gestureDetector; class myGestureListener extends SimpleOnGestureListener{ @Override /*识别滑动,第一个参数为刚开始事件 =new GestureDetector(MainActivity.this,new myGestureListener()); ivShow=(ImageView) findViewById(R.id.ivShow

25610
  • 广告
    关闭

    腾讯云校园大使火热招募中!

    开学季邀新,赢腾讯内推实习机会

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android之GestureDetector使用

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

    9310

    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

    7830

    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

    7810

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

    需要的功能也是多种多样,而同一种效果可以有多种实现方案;和尚今天学习一下通过 Overlay 实现基本的悬浮引导效果; Overlay 以浮层的方式管理单独的 item 存储在栈中(后进先出);Overlay 其源码也是采用的 Overlay 中定义自身的位置; 当创建 MaterialApp 时,它会自动创建一个 Navigator,之后创建一个 Overlay,然后利用这个 Navigator 来管理路由中的界面; 源码分析 @required this.builder, bool opaque = false, bool maintainState = false, }) } 分析源码可知 : <Widget>[Positioned( top: (height - 200) * 0.5, left: (width - 200) * 0.5, child: GestureDetector ---- Overlay 案例源码 ---- 和尚对 Overlay 的尝试还比较基础,使用场景也比较小,如有错误,请多多指导!

    1.4K41

    看完这篇还不会 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

    21020

    【Flutter 专题】71 图解基本隐式动画 Widget

    中尝试过 AnimatedCrossFade 用于在两个 Widget 切换过度,简单实用,今天和尚重点学习一下并尝试相关隐式动画 Widget; AnimatedCrossFade 淡入淡出动画 源码分析 [AnimatedCrossFade 源码]() AnimatedSwitcher 切换动画 源码分析 const AnimatedSwitcher({ Key key, this.child 和尚尝试了两种简单的缩放动画和平移动画,暂未尝试复杂动画;且动画属性与显示隐藏的 switchInCurve / switchOutCurve 动画曲线共同展示效果; // 缩放动画效果 return GestureDetector { return ScaleTransition(scale: animation, child: child); })); // 平移动画效果 return GestureDetector AnimatedSwitcher 可以设置多个 Widget 平滑切换,相对于 AnimatedCrossFade 可扩展性更高;和尚尝试三个 Widget 平移切换; return GestureDetector

    38631

    自定义Toolbar添加双击事件

    implements TapListener.OnDoubleTapListener { private OnTwoTapListener mOnTwoTapListener; private GestureDetector attrs, defStyleAttr); TapListener tapListener = new TapListener(this); mDetector = new GestureDetector super.onTouchEvent(ev); mDetector.onTouchEvent(ev); return true; } } TapListener 是 GestureDetector.SimpleOnGestureListener TapListener.java源码: public class TapListener extends GestureDetector.SimpleOnGestureListener { private

    42330

    Flutter手势交互+自定义绘板组件v0.01

    ---- 1.从RaisedButton看事件交互 Flutter的组件中有很多是有点击事件的,比如按钮,这里简单翻一下源码。 child: GestureDetector(//通过onTap回调_handleTap方法 onTap: enabled ? ---- 2.GestureDetector事件处理 首先本质上要认清,GestureDetector是一个无状态的Widget 2.1:响应事件的盒子 既然GestureDetector 另外源码说了:两者最好不要一起用。 }, onPanCancel: () { print("onPanCancel in my box"); }, ); 复制代码 ---- 2.5:事件一览(第四波):三足鼎立 源码中说

    45410

    Flutter 的手势(GestureDetector)分析详解一、手势识别器分类二、手势识别器的相关闭包函数统计分析表:

    今天详细讲解一下Flutter中的GestureDetector。 目录: 一、手势识别器分类 二、手势识别器的相关闭包函数统计分析 三、各种手势识别器的使用详解 四、手势识别器混合使用 五、手势识别器使用时遇到的坑 一、手势识别器分类 GestureDetector 手势操作是开发中必不可少的,Flutter中的GestureDetector一共有 7大类25种。 {}, onScaleUpdate: (details) {}, onScaleEnd: (details) {}, ---- 二、手势识别器的相关闭包函数统计分析表: 我查看了一下每一个事件类型源码

    1.1K30

    2014-11-3Android学习------利用ViewFlipper实现滑动翻页的效果--------GIF动画实现

    我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:android gif模式和图片展现模式 定义ViewPager对象和手势对象, private ViewFlipper viewFlipper = null; private GestureDetector gestureDetector 初始化处理: viewFlipper = (ViewFlipper) this.findViewById(R.id.viewflipper); gestureDetector = new GestureDetector image, new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } 当我们new GestureDetector (event); } 让手势监听器去处理它,而不是系统默认的处理方式 最后看看效果是怎么样:它可以一直向左滑,滑到尽头又从末尾的那个变成开头的,也可以一直向右滑 该项目的源码地址:http

    9520

    Android编程使用GestureDetector实现简单手势监听与处理的方法

    本文实例讲述了Android编程使用GestureDetector实现简单手势监听与处理的方法。 分享给大家供大家参考,具体如下: 添加手势识别监听步骤: 一、给相应的控件添加触摸监听事件, 二、利用GestureDetector转发这个触摸事件。 具体代码如下: MainActivity代码如下: package com.example.gesturedetector; import android.support.v7.app.AppCompatActivity ; import android.os.Bundle; import android.view.GestureDetector; import android.view.MotionEvent; import myGestureDetector; class myGestureListener extends GestureDetector.SimpleOnGestureListener { @

    24241

    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

    2.7K40

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

    及其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 toAlpha="0.1" 表示图片从不透明(1.0)到透明(0.1) android:fromAlpha="0.1"  android:toAlpha="1.0" 表示图片从透明(0.1)到不透明(1.0) 源码下载 推荐参考: ViewFlipper GestureDetector.OnDoubleTapListener GestureDetector.OnGestureListener

    87310

    Android中View位置和触摸事件详解

    本文Demo都是在自定义View中进行的,文末有下载链接 View的位置参数 MotionEvent屏幕触摸事件 GestureDetector手势检测(单击,双击,长摁,滑动) 二、View的位置参数 } x = 0; y = 0; break; } // 返回true,拦截这个事件 // 返回false,不拦截 return true; } 四、GestureDetector 1、辅助检测用户的单击、滑动、长按、双击等行为 2、如何使用: 创建一个GestureDetector对象并实现OnGestureListener接口,根据需要实现OnDoubleTapListener onGestureListener = new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent float deltaX, float deltaY) { // 正数往右,负数往左 setTranslationX(deltaX); setTranslationY(deltaY); } 六、源码地址

    41251

    Flutter 你需要知道的那些事 01

    fit 属性 点击 Image 的 fit 属性进入源码可以看到如下: /// How to inscribe the image into the space allocated during layout //flutter.github.io/assets-for-api-docs/assets/painting/box_fit_scaleDown.png) scaleDown, } 相信大家看到源码的注释应该很清楚每个值的意义了 ''; print('exception='+printContent); GestureDetector 我们知道如果要给一个 Widget 增加点击事件,最简单的方法就是套一层 GestureDetector 假设我们要求给这个点赞组件加上点击事件,那么我们直接给 Row 套上 GestureDetector Widget。 设置 GestureDetector 的 behavior 属性(推荐方式) 其实如果你需要空白区域也响应点击,只需要设置一下 GestureDetector 的 behavior 属性即可。

    27130

    【Flutter 15】图解 ListView 不同样式 item 及 Widget 显隐性

    GestureDetector 手势方法注意 默认很多 Widget 没有 onTab() 方法,但是可以用 GestureDetector 来进行手势处理;和尚建议使用 GestureDetector 时针对具体的 Widget,例如对 item 进行点击操作时,对整个 item 外添加 GestureDetector,和尚当时糊涂把 GestureDetector 添加错 Widget 以为使用方式有问题 核心源码 List<int> stateItems = <int>[ 1, 1, 2, 2, 0, 1, 1, 1, 0, 1, 2, 2, 1, 2, ]; List<String> strItems style: new TextStyle(color: Colors.blueAccent, fontSize: 18.0), ); } widget = new GestureDetector Colors.greenAccent, child: new Padding( padding: new EdgeInsets.all(12.0), child: new GestureDetector

    1.9K51

    Android开发笔记(四十五)手势事件

    由于在onTouchEvent中判断用户手势的真实想法很不容易,因此Android提供了GestureDetector检测器来帮助我们识别手势。 借助于GestureDetector,可以在大多数场合下辨别出常用的几个手势事件,如点击、长按、翻页等等。 下面是GestureDetector的相关方法: 构造函数 : GestureDetector(Context context, OnGestureListener listener) 监听器类名 查看源码会发现scrollBy内部就是调用scrollTo,当然得先把当前坐标加上偏移量,从而得到滑动后的绝对坐标。 视图滑动例子 下面是一个简单滑动TextView的效果图: ? "font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">ScrollTextView控件的源码如下

    38730

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

    我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:android抽屉效果.zip 我的博客写的比较乱 mGestureDetector; public MyGesture() { mGestureDetector = new GestureDetector(this 的onTouchEvent()方法,将捕捉到的MotionEvent交给GestureDetector * 来分析是否有合适的callback函数来处理用户的手势 */ mGestureDetector; public MyGesture() { mGestureDetector = new GestureDetector(new , GestureDetector.OnGestureListener private class MySimpleGesture extends SimpleOnGestureListener

    9840

    相关产品

    • 应用安全开发

      应用安全开发

      应用安全开发(Xcheck)专注于解决软件安全开发流程中研发阶段的代码安全问题,通过扫描源代码,实现开发阶段的代码安全漏洞生命周期闭环管理,帮助企业和组织实现源代码安全的自动化检测、漏洞周期管理、安全质量分析,实现源代码安全的可视化管理。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券