`
mengsina
  • 浏览: 191487 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 滑动手势侦测方法介绍

阅读更多
在Android手机操作系统中支持各种滑动手势的操作。我们在这里为大家介绍的方法主要就是针对这些手势如何能在Android平台中侦测出来。下面就让我们大家一起来看看Android滑动手势具体的识别方法吧。

       * Android Activity跳转相关操作技巧分享
       * Android创建sdcard详细图解
       * Android系统信息查看方法详解
       * Android数据库相关代码解读
       * Android拍照实现方式概述

       Android SDK提供了一个listener类来侦测各种不同的手势:

       SimpleOnGestureListener。你只需要实现自己所关心的手势就可以了。Swipe在android里面是叫Fling。首先创建自己的一个手势detector类:

java代码:

    class MyGestureDetector extends SimpleOnGestureListener {

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2,
    float velocityX, float velocityY) {
    }

复制代码

       一个Android滑动手势有几个特征, 比如是在x或者y轴上近乎直线的划动, 中途路径的偏差不能太大, 而且划动需要一定的速度, 所以我们定义几个定量:

java代码:

    private static final int SWIPE_MIN_DISTANCE = 120;
    private static final int SWIPE_MAX_OFF_PATH = 250;
    private static final int
    SWIPE_THRESHOLD_VELOCITY = 200;

复制代码

       然后在onFling方法中, 判断是不是一个合理的swipe动作:

java代码:

    if(e1.getX() – e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {

    viewFlipper.setInAnimation(slideLeftIn);
    viewFlipper.setOutAnimation(slideLeftOut);
    viewFlipper.showNext();
    }
    else if (e2.getX() – e1.getX() > SWIPE_MIN_DISTANCE &&

    Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    viewFlipper.setInAnimation(slideRightIn);
    viewFlipper.setOutAnimation(slideRightOut);
    viewFlipper.showPrevious();
    }

    if(e1.getX() – e2.getX() > SWIPE_MIN_DISTANCE &&Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    viewFlipper.setInAnimation(slideLeftIn);
    viewFlipper.setOutAnimation(slideLeftOut);
    viewFlipper.showNext();
    }
    else if (e2.getX() – e1.getX() > SWIPE_MIN_DISTANCE &&Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    viewFlipper.setInAnimation(slideRightIn);
    viewFlipper.setOutAnimation(slideRightOut);
    viewFlipper.showPrevious();
    }

复制代码

       这里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:

java代码:

    viewFlipper = (ViewFlipper)findViewById(R.id.flipper);

    slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
    slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
    slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
    slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);

复制代码

       自定义的animation可以查看具体的XML, 比如从左边进来的一个动画:

java代码:

    < set xmlns:android=”http://schemas.
    android.com/apk/res/android”>

    < translate
    android:fromXDelta=”100%p”
    android:toXDelta=”0″
    android:duration=”800″/>
    < /set>

复制代码

       当然最后不要忘记在你的Activity中override onTouch方法来获取手势action:

java代码:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
    if (gestureDetector.onTouchEvent(event))
    return true;
    else
    return false;
    }

复制代码
分享到:
评论

相关推荐

    Android滑动手势侦测方法介绍

    ### Android滑动手势侦测方法介绍 #### 一、引言 随着移动设备的普及,触摸屏成为用户与设备交互的主要方式之一。Android系统作为全球最大的移动操作系统之一,提供了丰富的API来支持各种触摸事件,包括滑动手势。...

    android 滑动菜单

    1. **手势检测**:Android提供`GestureDetector`和`Scroller`类来处理滑动手势。`GestureDetector`负责识别用户的滑动操作,而`Scroller`则用于平滑地滚动视图。在`EGMenu.java`中,可能会有一个内部类扩展`...

    Android引导页面的滑动实现,解决ViewPage侧滑与ListView滑动的冲突问题

    为了实现更丰富的滑动效果,我们通常需要自定义`ViewPager`的滑动手势识别,这可以通过重写`ViewPager`的`onTouchEvent`方法来实现。 对于`ListView`,它是一个可滚动的列表视图,用户可以通过上下滑动查看更多的...

    Android实现侧边栏滑动源码

    4. **滑动手势处理**:`DrawerLayout`内置了滑动手势处理,可以通过`openDrawer()`和`closeDrawer()`方法控制侧边栏的开关状态。你也可以自定义滑动侦测,覆盖`onInterceptTouchEvent()`和`onTouchEvent()`方法。 5...

    Android SwipeView类似桌面的滑动界面.zip

    2. **滑动侦测**:使用`OnTouchListener`或`GestureDetector`来识别用户的滑动手势,判断是左滑、右滑还是点击事件。 3. **内存管理**:考虑到性能和内存使用,通常只有当前页面和相邻的页面会被加载到内存中。当...

    android 仿天猫商品详情界面滑动效果

    1. **滑动侦测**:实现滑动手势检测是关键。我们可以使用`GestureDetector`类来监听用户的滑动动作。通过重写`onDown()`, `onScroll()`, 和`onFling()`等方法,我们可以捕获滑动开始、滑动过程和快速滑动结束的事件...

    fab-toolbar,android5.0-MaterialDesigner设计效果,滑动显示和隐藏的toolbar

    在Android开发中,Material Design是一种广泛采用的设计语言,自Android 5.0(Lollipop)开始引入。...理解并掌握这种设计和实现方法对于Android开发者来说,对于提升应用的用户体验和遵循现代设计规范至关重要。

    ListViewScrollViewDemo:仿雪球行情页底部的滑动手势效果

    总的来说,ListViewScrollViewDemo是一个展示如何在Android应用中融合ListView和ScrollView功能,以及实现复杂滑动手势效果的实例。它涵盖了Android UI设计、事件处理、手势识别、动画制作等多个核心知识点,对于...

    左侧滑动菜单

    在处理滑动事件时,"RenRenSlidingLayout"可能使用了滑动手势检测算法,比如滑动侦测器(GestureDetector)和Scroller类。滑动侦测器负责识别用户的滑动动作,而Scroller则帮助平滑地执行动画,使得菜单的展开和关闭...

    仿网易新闻的滑动视图布局

    1. **滑动切换栏目**:这是该布局的核心功能,允许用户通过水平滑动手势在不同的栏目之间进行切换。这通常通过实现滑动布局(如ViewPager)来完成,它会自动处理页面间的平滑过渡。开发者需要为每个栏目创建对应的...

    listview 向左滑动删除

    我们需要创建一个滑动侦测器(如`SwipeTouchListener`),用于检测用户的滑动手势。侦测器可以监听`MotionEvent`,计算滑动的距离和方向。当滑动超过一定阈值时,显示删除按钮。 ```java public class ...

    android下拉刷新

    注意,RecyclerView的滑动冲突处理,需要正确配置滚动方向,以免与SwipeRefreshLayout的滑动手势发生冲突。 5. 第三方库: 除了官方的SwipeRefreshLayout,还有许多第三方库提供更强大的下拉刷新功能,例如:...

    防网易新闻左右侧滑缩小

    标题“防网易新闻左右侧滑缩小”涉及到的是一个在Android应用开发中的技术点,主要目标是防止用户在浏览类似网易新闻的应用时,通过左右滑动手势导致界面元素(如菜单或内容区域)的缩小。这一功能通常是通过实现...

    QQ侧滑效果

    - 实现滑动手势检测通常可以使用`GestureDetector`或者自定义滑动侦测逻辑。你需要设置一个最小的滑动距离阈值,以避免误触。同时,根据滑动方向(水平或垂直)来判断是侧滑还是其他手势。 3. **视图动画**: - ...

    侧滑效果仿qq侧滑

    1. **滑动侦测**:实现侧滑效果的关键在于正确地检测用户的滑动手势。通常,这需要使用GestureDetector和Scroller类。GestureDetector用于监听滑动事件,而Scroller则负责动画效果,使菜单平滑地打开和关闭。 2. **...

    SlideTest 侧滑菜单参考

    - 实现侧滑菜单需要识别和处理滑动手势。在Android中,可以通过`GestureDetector`和`OnGestureListener`接口来监听和响应滑动事件。还可以通过`Scroller`类来实现平滑的动画效果。 6. **自定义动画**: - 为了...

    手机屏幕触控技术与提升AIR在Android上的触控体验

    5. **自定义触摸事件处理**:对于特定的触控行为,可以创建自定义事件并进行优化处理,比如滑动侦测、长按事件等,以提供更丰富的交互体验。 6. **优化布局和性能监控**:使用高效的布局管理器,避免嵌套过多的显示...

Global site tag (gtag.js) - Google Analytics