android手势滑动页面,Android 手势识别 (左右滑动)实现 页面 切换
要实现 页面左右滑动的效果 就一定要由手势识别器, 就是这个对象 GestureDetector。
用法其实很简单,这里 写一下 方便以后用到的时候好找。
步骤就是 这样子 123.。
1. 初始化手势识别器
2 注册 手势识别的 touch 事件 。
就是这么简单。仅仅两步 就能实现识别手势页面切换。
因为 页面切换 在每个 activity 中都有 所以 我们 把手势识别器 初始化 注册 放在baseactivity里面 能够最有效地 利用我们的代码。
package com.example.gesturedemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.View;
import android.view.MotionEvent;
public abstract class BaseActivity extends Activity {
private GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//1 初始化 手势识别器
mGestureDetector = new GestureDetector(this,new GestureDetector.SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {// e1: 第一次按下的位置 e2 当手离开屏幕 时的位置 velocityX 沿x 轴的速度 velocityY: 沿Y轴方向的速度
//判断竖直方向移动的大小
if(Math.abs(e1.getRawY() - e2.getRawY())>100){
//Toast.makeText(getApplicationContext(), "动作不合法", 0).show();
return true;
}
if(Math.abs(velocityX)<150){
//Toast.makeText(getApplicationContext(), "移动的太慢", 0).show();
return true;
}
if((e1.getRawX() - e2.getRawX()) >200){// 表示 向右滑动表示下一页
//显示下一页
next(null);
return true;
}
if((e2.getRawX() - e1.getRawX()) >200){ //向左滑动 表示 上一页
//显示上一页
pre(null);
return true;//消费掉当前事件 不让当前事件继续向下传递
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
/**
* 下一个页面
* @param view
*/
public abstract void next(View view);
/**
* 上一个页面
* @param view
*/
public abstract void pre(View view);
//重写activity的触摸事件
@Override
public boolean onTouchEvent(MotionEvent event) {
//2.让手势识别器生效
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
然后 让 每个具体的界面 去继承 这个baseactivity 然后实现相应的 next 或者 pre 方法 即可。 为了 显示效果 ,我们定义 几个动画 效果,左进右出,或者右进左出的。 具体 看 小demo 。
android手势滑动页面,Android 手势识别 (左右滑动)实现 页面 切换相关推荐
- android手势密码csdn,Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析...
Android手势密码LockPatternView.LockPasswordUtils.LockPatternUtils 在使用别人写的这个手势密码的时候,我们通常是有自己的需求,可能这里的代码很多 ...
- android 手势事件 重写,Android实现通过手势控制图片大小缩放的方法
本文实例讲述了Android实现通过手势控制图片大小缩放的方法.分享给大家供大家参考,具体如下: 该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度 ...
- android 手势放缩_AIR Android:放大与缩小手势
放大与缩小手势(1) 放大与缩小手势对应TransformGestureEvent. GESTURE_ZOOM事件类型,使用时要求两个手指触摸屏幕,同时向外或向内做放缩动作,如图3-2所示. 图3-2 ...
- android 手势密码逻辑,[Android开发实战]Android手势密码(支付宝手势密码)实现(支持2.x)...
原创文章,转载请注明出处:http://blog.csdn.net/ruils/article/details/17081207 在很多安全性比较高的应用程序中,每次打开程序,都会有让用户输入密码,这 ...
- Android 手势导航(从下往上滑动进入多任务页面)
Android系统启动篇 1,<android系统启动流程简介> 2,<android init进程启动流程> 3,<android zygote进程启动流程> 4 ...
- 【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
文章目录 一.GestureDetector 创建与设置 二.GestureDetector 触摸事件传递 三.触摸滑动操作 四.惯性滑动操作 五.长图滑动组件代码示例 六.运行效果 七.源码及资源下 ...
- android studio多页面滑动,Android Studio之多个Activity的滑动切换(二)
1.由于Android界面上的所有控件一般都位于Layout控件(比如RelativeLayout)之上,而布局控件可以设置响应touch事件,所以可以通过布局控件的setOnTouchListen来 ...
- Android手势识别——上下左右滑动、屏幕上下左右中区域处理
手势识别GestureDetector 关于手势识别是Android为了方便开发人员处理屏幕上的触摸.拖动.单双击.滑动等提供的一组接口.用这个我们可以很方便的在屏幕上做出想要的效果,比如滑动翻页.触 ...
- 【Android 手势冲突】Colin带你彻底解决RecyclerView与ScrollView滑动冲突问题,并实现RecyclerView悬停导航栏(附demo哦)
在新一期的需求中,产品要求我们做出和美团某个页面类似的功能,即一个页面包含在scrollView中,上面一个部分放置一些常用的广告banner.宫格tab等,下面放置一个RecyclerView用于展 ...
最新文章
- Meta首个元宇宙平台Horizon被吐槽,用户只配有半截身子!
- pcb中几个层的解释
- TurboMail荣获2010年度优秀电子邮件产品殊荣
- as3+java+mysql(mybatis) 数据自动工具(三)
- VB.NET循环体内的局部变量
- 机器人整机主要产品规格参数
- QT QNetworkInterface::allAddresses();获取了很多无效的地址_Qt编写地图综合应用16-省市轮廓图下载...
- Bootstrap组件_警告框
- Ubuntu nginx+uwsgi部署Django项目
- elk-可视化图标(nginx)
- mysql日志恢复的时间格式_mysql binlog 日志恢复数据
- vmware虚拟化之vswitch详细资料
- 【Spring框架】mvc:default-servlet-handler/的作用
- java 新手入门电子书_java基础入门电子版pdf下载-java基础入门电子版百度云pdf高清版-东坡下载...
- pandownload复活版下载 | 百度网盘下载速度慢的终极解决方案
- 解决​excel里一复制就卡死的经验分享【转】
- ECMAScript6词法
- Zabbix5.0如何发送短信
- 电路中IC器件电压符号的解释
- 正则表达式 String中正则匹配的方法