[android] 手机卫士手势滑动切换屏幕

[android] 手机卫士手势滑动切换屏幕,第1张

概述定义手势识别器 获取手势识别器GestureDetector对象,通过new GestureDetector(context,listener),参数:上下文,监听器 匿名内部类实现简单手势监听器Si

定义手势识别器

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

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

传递进来四个参数:

MotionEvent e1 MotionEvent e2veLocityXveLocityY

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

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

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

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

 

使用手势识别器识别手势

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

传递进来一个参数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; androID.os.Bundle; androID.vIEw.GestureDetector; 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                    boolean onFling(MotionEvent e1,MotionEvent e2,1)">float veLocityX,float veLocityY) {                        屏蔽斜着划                        if(Math.abs(e1.getRawY()-e2.getRawY())>100){                            return true;                        }                        if ((e1.getRawX() - e2.getRawX()) > 100) {                            System.out.println("从右往左划,下一页");                            showNext();                            if ((e2.getRawX() - e1.getRawX()) > 100) {                            System.out.println("从左往右划,上一页");                            showPre();                            .onFling(e1,e2,veLocityX,veLocityY);                    }                });    }     showPre();    @OverrIDe     ontouchEvent(MotionEvent event) {        gestureDetector.ontouchEvent(event);        .ontouchEvent(event);    }     showNext();}

 

总结

以上是内存溢出为你收集整理的[android] 手机卫士手势滑动切换屏幕全部内容,希望文章能够帮你解决[android] 手机卫士手势滑动切换屏幕所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1121148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存