2024年3月9日发(作者:)

Gallery2

分析之手势监听(二)

author : Archer

1、背景知识:

所谓 手势,就是指用户手指或者触摸笔在触碰上连续的触碰行为。

2015-12-15

2、手势检测:

Android为手势提供了一个GestureDetector类,GestureDetector代表了一个手势检测器。创建

GestureDetector时需要传入一个ureListener实

例,ureListener实际上就是一个监听器,负责对用户的手势行为提供响应。

ureListener提供如下方法:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

@Override //当触碰事件按下时触发此方法

public boolean onDown(MotionEvent arg0) {

// TODO Auto-generated method stub

Log.d(TAG, "onDown");

return false;

}

@Override//当用户在屏幕上拖动时触发此方法,其中,arg2、arg3代表拖动在横向、纵向的的

速度。

public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,

float arg3) {

// TODO Auto-generated method stub

Log.d(TAG, "onFling");

return false;

}

@Override//当用户在屏幕上长按触发此方法

public void onLongPress(MotionEvent arg0) {

// TODO Auto-generated method stub

Log.d(TAG, "onLongPress");

}

@Override//当用户在屏幕上滑动触发此方法

public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,

float arg3) {

// TODO Auto-generated method stub

Log.d(TAG, "onScroll");

return false;

}

@Override//当用户在屏幕上按下、而且未移动和松开时触发此方法

public void onShowPress(MotionEvent arg0) {

// TODO Auto-generated method stub

Log.d(TAG, "onShowPress");

}

@Override//当用户在屏幕上轻击时间触发此方法

public boolean onSingleTapUp(MotionEvent arg0) {

// TODO Auto-generated method stub

Log.d(TAG, "onSingleTapUp");

return false;

}

一般来说会重写

onTouchEvent

方法,并且调用

GestureDetector的

onTouchEvent

方法。

Gallery2

分析之手势监听(二)

author : Archer

1.

2.

3.

4.

5.

@Override

public boolean onTouchEvent(MotionEvent event) {

// TODO Auto-generated method stub

return hEvent(event);

}

2015-12-15

3、图库中全屏浏览图片PhotoPage中手势监听流程分析

Photo全屏显示类PhotoPage类图

4、从前文可知,继承于ActivityState的四个页面之一的PhotoPage,其管理是通过StateManager进行状态