监听手指左右滑动屏幕的事件,封装好了一个类
2014-07-10 17:52
513 查看
原文:http://blog.csdn.net/qiantujava/article/details/22639353
左右滑动是智能手机最常用的动作,在此简单的封装了一下,以后直接拿来用就可以了。
简单的只需要几行就可以了,下面那个类是封装好了的。
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.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; } }
相关文章推荐
- 监听手指左右滑动屏幕的事件,封装好了一个类
- 监听手指左右滑动屏幕的事件,封装好了一个类
- 封装的android监听手指左右滑动屏幕的事件类分享
- 利用监听事件做一个判断是在x方向还有y方向上面的判断,判断在屏幕上滑动的趋势
- 安卓左右滑动事件监听
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- Android开发:监听当前View的左右滑动事件,并返回给当前的activity或者fragment
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 监听PC/移动端,鼠标滑动,滚轮,手指滑动事件
- Android activity加入左右监听手势,页面是一个listview,不影响listview的点击事件
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- Android监测手指上下左右滑动屏幕
- Android笔记之监听左右滑动事件
- Android监测手指上下左右滑动屏幕
- 移动端touch事件---利用bootstrap实现轮播图手指左右滑动事件
- Activity实现监听手指上下左右滑动
- JavaScript 监听屏幕滑动事件的JS
- JavaScript 监听屏幕滑动事件的JS
- Android监测手指上下左右滑动屏幕