返回
顶部

修改密码

手指划动切换Activity

+1

-1

收藏

+1

-1

点赞0

评论0

以下代码用于Activity之间的划动切换,大概实现原理就是判断手指的划动速度和划动方向以确定向哪个Activity跳转,switchTo***Activity()为Activity的跳转方法01private VelocityTracker velocityTracker;//用于得到手势在屏幕上的滑动速度02private static final int VELOCI…

以下代码用于Activity之间的划动切换,大概实现原理就是判断手指的划动速度和划动方向以确定向哪个Activity跳转,switchTo***Activity()为Activity的跳转方法

01 private VelocityTracker velocityTracker;//用于得到手势在屏幕上的滑动速度
02 private static final int VELOCITY = 600;
03 @Override
04 public boolean onTouchEvent(MotionEvent event) {
05 String localClassName = getLocalClassName();//当前所在类名
06 LogUtil.log(TAG, "class Name:"+localClassName);
07 int action = event.getAction();
08 //float x = event.getX();
09 //float y = event.getY();
10  
11 switch (action) {
12 case MotionEvent.ACTION_DOWN:
13 if(velocityTracker == null){
14 velocityTracker = VelocityTracker.obtain();//取得手势在屏幕上的滑动速度
15 velocityTracker.addMovement(event);
16 }
17 //lastMotionX = x;
18  
19 break;
20  
21 case MotionEvent.ACTION_MOVE:
22 //int deltaX = (int) (lastMotionX - x);
23 if(velocityTracker != null){
24 velocityTracker.addMovement(event);
25 }
26 //lastMotionX = x;
27 break;
28  
29 case MotionEvent.ACTION_UP:
30  
31 int velocityX = 0;
32 if(velocityTracker != null){
33 velocityTracker.addMovement(event);
34 velocityTracker.computeCurrentVelocity(1000);//计算每秒滑动多少个像素
35 velocityX = (int) velocityTracker.getXVelocity();//最后计算检索X速度
36 }
37  
38 if(velocityX > VELOCITY ){
39 if("ui.MainActivity".equals(localClassName)){
40 switchToTvLiveActivity();
41 }else if("ui.LocalMediaActivity".equals(localClassName)){
42 switchToMainActivity();
43 }else if("ui.NetMediaActivity".equals(localClassName)){
44 switchToLocalMediaActivity();
45 }else if("ui.TvLiveActivity".equals(localClassName)){
46 switchToNetMediaActivity();
47 }
48 } else if(velocityX < -VELOCITY ){
49 if("ui.MainActivity".equals(localClassName)){
50 switchToLocalMediaActivity();
51 }else if("ui.LocalMediaActivity".equals(localClassName)){
52 switchToNetMediaActivity();
53 }else if("ui.NetMediaActivity".equals(localClassName)){
54 switchToTvLiveActivity();
55 }else if("ui.TvLiveActivity".equals(localClassName)){
56 switchToMainActivity();
57 }
58 }
59  
60 if(velocityTracker != null){
61 velocityTracker.recycle();//回收
62 velocityTracker = null;
63 }
64  
65 break;
66 }
67  
68 return true;
69 }

扫一扫在手机打开

评论
已有0条评论
0/150
提交
热门评论
相关推荐
今日要闻
换一批
热点排行