自己对于android左右滑动切换tab或者任务的复制

来源:互联网 发布:亚马逊数据分析工具 编辑:程序博客网 时间:2024/05/03 01:12

首先感谢下我看到的那篇文章作者 当然不记得名字了 对不住了

要实现左右滑动来切换tab或者任务 分别继承了TabActivity或者Activity 然后自己实现OnTouchListener, OnGestureListener这两个接口

介绍重点函数:

public boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stub return mGestureDetector.onTouchEvent(event); }
看名字大概就知道是检测对屏幕操作的函数 用来返回手指在屏幕上的操作细节

mGestureDetector是用系统函数GestureDetector生成的对象 

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {int total=tabHost.getTabWidget().getChildCount();int current=tabHost.getCurrentTab();// TODO Auto-generated method stub if (e1.getX()-e2.getX() > FLING_MIN_DISTANCE                 && Math.abs(velocityX) > FLING_MIN_VELOCITY) {             // Fling left             Toast.makeText(this, "向左手势", Toast.LENGTH_SHORT).show();                       //在这里添加向左滑动屏幕完成的任务 下面是设置tab的当前项也就实现的切换功能//当然如果是  //Intent intent = new Intent(ViewSnsActivity.this, UpdateStatusActivity.class);   //          startActivity(intent);//就能完成其他Activity的切换            tabHost.setCurrentTab(current+1>total?total-1:current+1);        } else if (e2.getX()-e1.getX() > FLING_MIN_DISTANCE                 && Math.abs(velocityX) > FLING_MIN_VELOCITY) {             // Fling right         tabHost.setCurrentTab(current-1<0?0:current-1);//同向左滑动            Toast.makeText(this, "向右手势", Toast.LENGTH_SHORT).show();         }         return false; }

其中

FLING_MIN_DISTANCE这个是用来定义滑动的最短距离  根据他来判断是不是滑动了 然后作出决定

FLING_MIN_VELOCITY移动速度 慢了也不反应 相当于降噪吧
复制下来 以后忘了可以再来看

原创粉丝点击