监听手指左右滑动屏幕的事件,封装好了一个类
来源:互联网 发布:2015年双十一销售数据 编辑:程序博客网 时间:2024/05/17 21:47
转载自:http://blog.csdn.net/qiantujava/article/details/22639353
在做Activity的左右滑动时,用到了这个连接中的封装类,解决了问题,简洁有效!
- package com.example.test;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Context;
- import android.util.Log;
- import android.widget.RelativeLayout;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);//这里的xml是一个空白的layout
- //需要监听左右滑动事件的view
- RelativeLayout view = (RelativeLayout) this.findViewById(R.id.layout);
- //setLongClickable是必须的
- view.setLongClickable(true);
- view.setOnTouchListener(new MyGestureListener(this));
- }
- /**
- * 继承GestureListener,重写left和right方法
- */
- private class MyGestureListener extends GestureListener {
- public MyGestureListener(Context context) {
- super(context);
- }
- @Override
- public boolean left() {
- Log.e("test", "向左滑");
- return super.left();
- }
- @Override
- public boolean right() {
- Log.e("test", "向右滑");
- return super.right();
- }
- }
- }
封装的类:
- package com.example.test;
- import android.content.Context;
- import android.view.GestureDetector.SimpleOnGestureListener;
- import android.view.GestureDetector;
- import android.view.View;
- import android.view.View.OnTouchListener;
- import android.view.MotionEvent;
- /**
- * 实现监听左右滑动的事件,哪个view需要的时候直接setOnTouchListener就可以用了
- * @author LinZhiquan
- *
- */
- public class GestureListener extends SimpleOnGestureListener implements OnTouchListener {
- /** 左右滑动的最短距离 */
- private int distance = 100;
- /** 左右滑动的最大速度 */
- private int velocity = 200;
- private GestureDetector gestureDetector;
- public GestureListener(Context context) {
- super();
- gestureDetector = new GestureDetector(context, this);
- }
- /**
- * 向左滑的时候调用的方法,子类应该重写
- * @return
- */
- public boolean left() {
- return false;
- }
- /**
- * 向右滑的时候调用的方法,子类应该重写
- * @return
- */
- public boolean right() {
- return false;
- }
- @Override
- public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
- float velocityY) {
- // TODO Auto-generated method stub
- // e1:第1个ACTION_DOWN MotionEvent
- // e2:最后一个ACTION_MOVE MotionEvent
- // velocityX:X轴上的移动速度(像素/秒)
- // velocityY:Y轴上的移动速度(像素/秒)
- // 向左滑
- if (e1.getX() - e2.getX() > distance
- && Math.abs(velocityX) > velocity) {
- left();
- }
- // 向右滑
- if (e2.getX() - e1.getX() > distance
- && Math.abs(velocityX) > velocity) {
- right();
- }
- return false;
- }
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- // TODO Auto-generated method stub
- gestureDetector.onTouchEvent(event);
- return false;
- }
- public int getDistance() {
- return distance;
- }
- public void setDistance(int distance) {
- this.distance = distance;
- }
- public int getVelocity() {
- return velocity;
- }
- public void setVelocity(int velocity) {
- this.velocity = velocity;
- }
- public GestureDetector getGestureDetector() {
- return gestureDetector;
- }
- public void setGestureDetector(GestureDetector gestureDetector) {
- this.gestureDetector = gestureDetector;
- }
- }
0 0
- 监听手指左右滑动屏幕的事件,封装好了一个类
- 监听手指左右滑动屏幕的事件,封装好了一个类
- 监听手指左右滑动屏幕的事件,封装好了一个类
- 实现监听左右滑动的事件
- android监听左右滑动事件
- JavaScript 监听屏幕滑动事件的JS
- 一个模拟手机手指滑动事件的jquery插件
- 移动端手指操控左右滑动的菜单
- android屏幕的滑动监听。
- 一个跟随手指滑动的Button
- IOS 页面手指滑动监听--
- 移动端touch事件---利用bootstrap实现轮播图手指左右滑动事件
- 滑动事件左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- POJ 2479 (后附 POJ 2593) DP
- 高德地图远程获取手机的敏感信息可远程命令执行(可以远程利用非webview)
- 9.11排序与查找(五)——有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置
- 数字证书原理
- JAVA-QUEUE类图
- 监听手指左右滑动屏幕的事件,封装好了一个类
- 如何删掉win8.1我的计算机里的文件夹(by 星空武哥)
- HDU - 5410 CRB and His Birthday
- OSCache EhCache
- UVA 400 Unix ls
- hdu 1863 畅通工程 kruskal || prim
- ubuntu下svn、vpn客户端的配置使用
- 浅析Mysql Join语法以及性能优化
- [leetcode-160]Intersection of Two Linked Lists(c)