安卓开发使用GestureDetector手势滑动界面

用惯了苹果的人都知道在在APP中只需要手指左右滑动就可以进行页面的转换,但是在Android中大部分软件还只是使用返回键来进行界面的更替,其实Android很早很早以前就支持手势去更新操作,只是很多APP中没有使用到GestureDetector,下面就简单说说通过GestureDetector来进行界面的更替,下面只给出关键代码,直接使用即可。

GestureDetector  detector = new GestureDetector(this, new GestureDetector.OnGestureListener() {//
@Override
public boolean onDown(MotionEvent e) {
return false;
}
 
@Override
public void onShowPress(MotionEvent e) {
 
}
 
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
 
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
 
@Override
public void onLongPress(MotionEvent e) {
 
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > 120) {//向左滑动,在这里可以进行界面间的更新,你想怎么干就怎么干
Intent intent = new Intent();
intent.setClass(MainActivity.this, Two.class);
startActivity(intent);
return true;
} else if (e1.getX() - e2.getX() < -120) {//向右滑动
MainActivity.this.finish();
return true;
}
return false;
}
});
 
@Override
public boolean onTouchEvent(MotionEvent event) {//一定要在activity中重写onTouchEvent方法才能使手势生效
detector.onTouchEvent(event);
return super.onTouchEvent(event);
}
 
上面是在正常情况下的滑动,当你在ListView等本身带有滑动的控件使用手势绝对会冲突,下面只给出最简单最粗暴的解决方式—— 改变系统的 onTouchEvent 事件的顺序,重写dispatchTouchEvent方法

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
 this.detector.onTouchEvent(ev);
 return super.dispatchTouchEvent(ev);
}

以上就是通过GestureDetector手势来进行界面间的转换,对动画研究透彻的童鞋可以在界面交替时加上动画效果!GestureDetector还有很多功能,有兴趣的可以继续研究

时间: 2024-10-24 08:16:49

安卓开发使用GestureDetector手势滑动界面的相关文章

安卓开发之通过手势实现图像拖拽功能

本示例实现Android通过手势可以实现图像的拖拽功能.运行效果如下: 开发之通过手势实现图像拖拽功能-jquery实现拖拽功能">     代码如下 复制代码 package com.android.drag;import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.gr

Android GestureDetector手势滑动使用实例讲解_Android

Gesture在 ViewGroup中使用 GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等. 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture处理 先来了解一下如何使用,后面会有示例: package com.example.y2222.myview; import android.content.Context; import android.ut

Android GestureDetector手势滑动使用实例讲解

Gesture在 ViewGroup中使用 GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等. 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture处理 先来了解一下如何使用,后面会有示例: package com.example.y2222.myview; import android.content.Context; import android.ut

安卓开发-这个安卓界面要怎么做啊 求大神帮忙

问题描述 这个安卓界面要怎么做啊 求大神帮忙 开发-这个安卓界面要怎么做啊 求大神帮忙-安卓开发大神"> 就是这样一个界面 解决方案 兄弟,你的图片看不到呀---

【Android开发】如何在tab选项卡标签页添加手势滑动ViewFlipper

问题描述 [Android开发]如何在tab选项卡标签页添加手势滑动ViewFlipper 如何在tab选项卡标签页添加手势滑动ViewFlipper,我在包中的一个main.java中写了添加了A的选项卡代码,在另一个A.java中加载了A的XML界面,然后我想在A中添加手势滑动翻页的功能,我尝试在A.java中添加ViewFlipper,但出现了这种情况部分代码如下:final int FLIP_DISTANCE = 50; ViewFlipper flipper; GestureDetec

安卓开发中某一个界面还没等你操作呢 自己就没了 哪里出问题了?

问题描述 安卓开发中某一个界面还没等你操作呢 自己就没了 哪里出问题了? 问题如上 好困惑! 解决方案 自己就没了,是返回上一级页面么?还是什么?有可能是AndroidManifest.xml文件里activity配置的问题.. 解决方案二: 出现fatal crash了把,抓下log看看. 解决方案三: 贴出代码,贴出log,才好分析,这样描述太抽象 解决方案四: 看一下log日志,看看错误信息. 解决方案五: 这个问题问的有点抽象能不能再具体些

安卓开发左右滑动切换activity怎么弄?

问题描述 安卓开发左右滑动切换activity怎么弄? 大神帮帮忙 百度教程都不太懂新人不会太郁闷了 解决方案 手势识别,,,判断左右 解决方案二: 用viewpager,很简单,你搜,各种代码都有,拷贝就能用,你要你要再不会,可以不用干这个了

android-我想请大神帮我看看这个安卓开发的问题,我想实现自制侧滑菜单,然后我点击左边菜单按钮,界面不跳转啊

问题描述 我想请大神帮我看看这个安卓开发的问题,我想实现自制侧滑菜单,然后我点击左边菜单按钮,界面不跳转啊 ackage com.wecampus.slidingmenu; import com.imooc.slidingmenu.R; import com.wecampus.slidingmenu.view.SlidingMenu; import android.app.Activity; import android.os.Bundle; import android.view.Menu;

界面-安卓开发一个library可以有自己的activity 而且可以自己调用自己的

问题描述 安卓开发一个library可以有自己的activity 而且可以自己调用自己的 想开发个sdk,里面包含自己的界面,调用界面也在自己的类里面做,只给外面一个入口 解决方案 可以啊!建立类库,在类库里进行开发 解决方案二: 把你需要的类做好封装操作,然后打成jar包,或者用工具进行打包处理,然后在你用到的时候进行导包,添加路径就可以了,希望对你有用 解决方案三: 有自己的activity不需要进行注册吗?