左右滑动是智能手机最常用的动作,在此简单的封装了一下,以后直接拿来用就可以了。
简单的只需要几行就可以了,下面那个类是封装好了的。
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,@R_502_5987@ veLocityX,@R_502_5987@ 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监听手指左右滑动屏幕的事件类分享全部内容,希望文章能够帮你解决封装的android监听手指左右滑动屏幕的事件类分享所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)