展会信息港展会大全

手指划动切换Activity
来源:互联网   发布日期:2016-01-06 19:21:29   浏览:2280次  

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

以下代码用于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

}

赞助本站

人工智能实验室

相关热词: 划动 切换Activity

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港