定义手势识别器

获取手势识别器GestureDetector对象,通过new GestureDetector(context,listener),参数:上下文,监听器

匿名内部类实现简单手势监听器SimpleOnGestureListener接口,重写onFling()滑动方法

传递进来四个参数:

MotionEvent e1 ,MotionEvent e2,velocityX,velocityY

e1是第一个点,e2是第二个点,x轴的速度,y轴的速度

当第一个点减去第二个点大于200时,我们认为它是从右往左划,下一页

当第二个点减去第一个点大于200时,我们认为它是从左往右划,上一页

调用MotionEvent 对象的getRawX()可以获取到X轴的坐标

使用手势识别器识别手势

重写activity的onTouchEvent()方法,获取到手势在界面上的滑动事件

传递进来一个参数MotionEvent对象

调用GestureDetector对象的onTouchEvent(event)方法,参数:MotionEvent对象,把获取到的事件传递进去

屏蔽斜着划

两个点的y轴坐标之间的距离大于100时,我们认为它是斜着划的

调用MotionEvent 对象的getRawY()可以获取到Y轴的坐标,两个点的差值取绝对值Math.abs(),判断大于100 就返回true,不往下进行

如果找不到SimpleOnGestureListener类,使用new GestureDetector.SimpleOnGestureListener()

抽取公用方法到基类抽象类 BaseSecActivity中,自己的activity只需要继承这个基类,实现上下页的抽象方法,就能实现左右滑动效果

BaseSecGuideActivity.java

package com.qingguow.mobilesafe;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent; public abstract class BaseSecGuideActivity extends Activity {
// 定义手势识别器
protected GestureDetector gestureDetector; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 实例化
gestureDetector = new GestureDetector(this,
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
//屏蔽斜着划
if(Math.abs(e1.getRawY()-e2.getRawY())>100){
return true;
}
if ((e1.getRawX() - e2.getRawX()) > 100) {
System.out.println("从右往左划,下一页");
showNext();
return true;
}
if ((e2.getRawX() - e1.getRawX()) > 100) {
System.out.println("从左往右划,上一页");
showPre();
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
public abstract void showPre();
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
public abstract void showNext();
}

[android] 手机卫士手势滑动切换屏幕的更多相关文章

  1. Android 手机卫士--参照文档编写选择器

    本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.ht ...

  2. android手机卫士、3D指南针、动画精选、仿bilibli客户端、身份证银行卡识别等源码

    Android精选源码 android身份证.银行卡号扫描源码 android仿bilibili客户端 android一款3D 指南针 源码 android手机卫士app源码 android提醒应用, ...

  3. Android 手机卫士--设置界面&功能列表界面跳转逻辑处理

    在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959. ...

  4. Android 手机卫士--确认密码对话框编写

    本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. ...

  5. Android 手机卫士--签名文件说明&包名说明

    在<Android 手机卫士--打包生成apk维护到服务器>一文中,实现了新版本的apk到服务器,当打开客户端apk的时候,发现有新版本,提示更新.还实现了利用xutils工具实现了从服务 ...

  6. Android 手机卫士--弹出对话框

    在<Android 手机卫士--解析json与消息机制发送不同类型消息>一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下: private ...

  7. Android开发之手势滑动(滑动手势监听)详解

    Android开发之手势滑动(滑动手势监听)详解 在Android应用中,经常需要手势滑动操作,比如上下滑动,或左右方向滑动,处理手势滑动通常有两种方法:一种是单独实现setOnTouchListen ...

  8. [Android] 使用Include布局+Fragment滑动切换屏幕

        前面的文章已经讲述了"随手拍"项目图像处理的技术部分,该篇文章主要是主界面的布局及屏幕滑动切换,并结合鸿洋大神的视频和郭神的第一行代码(强推两人Android博客),完毕了 ...

  9. 假设写一个android桌面滑动切换屏幕的控件(一)

    首先这个控件应该是继承ViewGroup: 初始化: public class MyGroup extends ViewGroup{ private Scroller mScroller; priva ...

随机推荐

  1. Linux 防火墙相关

    1.SELinux 防火墙 1.1 查看SELinux状态: 1) /usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态 bamb ...

  2. Centos7部署Kubernetes集群

    目录贴:Kubernetes学习系列 1.环境介绍及准备: 1.1 物理机操作系统 物理机操作系统采用Centos7.3 64位,细节如下. [root@localhost ~]# uname -a ...

  3. 背水一战 Windows 10 (72) - 控件(控件基类): UIElement - UIElement 的位置, UIElement 的布局, UIElement 的其他特性

    [源码下载] 背水一战 Windows 10 (72) - 控件(控件基类): UIElement - UIElement 的位置, UIElement 的布局, UIElement 的其他特性 作者 ...

  4. Objective-C优缺点

    优点: 1:Category,使用category可以在不改变原来类的同时为类增加新的方法或者重写原来类的方法实现(使用runtime方法还可以在分类中实现方法交换和添加属性操作) 2:运行时 动态识 ...

  5. Tomcat 在 Linux 上的安装和配置

    一.文件上传 先上传tomcat安装文件到Linux服务器 二.解压安装 使用以下命令解压安装包 .tar.gz 解压成功会生成一个文件夹 tomcat服务器运行时是需要JDK支持的,所以必须先安装好 ...

  6. Shell-4--环境变量

  7. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 3.安装配置OpenStack认证服务(keystone)

    节点配置信息说明: 控制节点:controller: IP:192.168.164.128 hostname&hosts:likeadmin 计算加点:Nova: IP:192.168.164 ...

  8. [译]ElasticSearch vs. Solr

    在Gen2产品的早期阶段, 我们事实上是失败的, 这促使我们重新审视我们现有的技术栈. 我们仔细分析系统中的每个独立的组件,并记录下来, 当然其中也包括构成我们核心功能的搜索引擎技术. 在我们的通用日 ...

  9. asp.net mvc 安全测试漏洞 "跨站点请求伪造" 问题解决

    IBM Security Appscan漏洞筛查-跨站请求伪造,该漏洞的产生,有多种情况: 1.WebApi的跨站请求伪造,需要对WebApi的请求头部做限制(此文不做详细介绍): 2.MVC Act ...

  10. Dispatch Queue 之 dispatch_sync