android中处理各种触摸事件
引用地址http://liguang.hua1010.blog.163.com/blog/static/118324506201023154130512/
Android里有两个类
android.view.GestureDetector
android.view.GestureDetector.SimpleOnGestureListener
(另外android.widget.Gallery好像是更牛x的OnGestureListener )
1)
新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener
可以实现以下event事件。
boolean onDoubleTap(MotionEvent e)
解释:双击的第二下Touch down时触发
boolean onDoubleTapEvent(MotionEvent e)
解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
boolean onDown(MotionEvent e)
解释:Touch down时触发
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解释:Touch了滑动一点距离后,up时触发。
void onLongPress(MotionEvent e)
解释:Touch了不移动一直Touch down时触发
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解释:Touch了滑动时触发。
void onShowPress(MotionEvent e)
解释:Touch了还没有滑动时触发
(与onDown,onLongPress比较
onDown只要Touch down一定立刻触发。
而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。
所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。
)
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。
点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
2)在view的新建一个GestureDetector的对象。
构造函数里
gestureDetector = new GestureDetector(new HahaGestureDetectorListener());
然后在View的onTouchEvent里以下这样用,就可以在刚才1)弄的事件里写自己的代码了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}
01.mTouchListener = new OnTouchListener() {
02. @Override
03. public boolean onTouch(View v, MotionEvent event) {
04. // TODO Auto-generated method stub
05. float x = event.getXPrecision()*event.getX()+event.getX();
06. float y = event.getYPrecision()*event.getY()+event.getY();
07. switch (event.getAction()) {
08. case MotionEvent.ACTION_DOWN:
09.
10. break;
11. case MotionEvent.ACTION_MOVE:
12. mTouchTimes++;
13. if (mTouchTimes > TOUCH_TIMES) {
14.// 根据方向计算角度
15. if (mCurrentOrientation==DeviceOrientation.Landscape) {
16. mAngle = Math.toDegrees(Math.atan2(y - 480 / 2, x))+90;
17. } else {
18. mAngle = -Math.toDegrees(Math.atan2(y - 480 / 2, 320-x))+90;
19. }
20.
21. Log.w("angle", "mangle:"+mAngle);
22. }
23. break;
24. case MotionEvent.ACTION_UP:
25. if (mTouchTimes > TOUCH_TIMES) {
26.
27. } else {
28.
29. }
30. mTouchTimes = 0;
31. break;
32. default:
33. break;
34. }
35. return true;
36. }
37. };
38.mView.setOnTouchListener(mTouchListener);
没有合适的资源?快使用搜索试试~ 我知道了~
android-触摸多例子打包
共71个文件
class:26个
java:10个
png:8个
4星 · 超过85%的资源 需积分: 3 10 下载量 178 浏览量
2012-03-27
18:11:55
上传
评论
收藏 493KB RAR 举报
温馨提示
Android-触摸例子,多个例子打包。android中处理各种触摸事件
资源推荐
资源详情
资源评论
收起资源包目录
android-触摸多例子打包.rar (71个子文件)
android-触摸
第十三讲-单点与多点触摸.rar 125KB
第十四讲触摸轨迹曲线.rar 125KB
第十四讲触摸轨迹曲线
关于作者.txt 87B
Touch
AndroidManifest.xml 877B
res
layout
main.xml 2KB
drawable-ldpi
icon.png 2KB
drawable-mdpi
jay.png 24KB
item.png 3KB
drawable-hdpi
icon.png 4KB
values
strings.xml 193B
proguard.cfg 1KB
src
cn
m15
xys
ViewActivity.java 2KB
startActivity.java 1KB
SurfaceViewAcitvity.java 4KB
bin
cn
m15
xys
ViewActivity$MyView.class 3KB
SurfaceViewAcitvity.class 972B
R.class 475B
ViewActivity.class 663B
R$layout.class 370B
R$attr.class 316B
startActivity.class 1KB
R$id.class 488B
R$string.class 403B
startActivity$1.class 1KB
startActivity$2.class 1KB
SurfaceViewAcitvity$MyView.class 4KB
R$drawable.class 431B
classes.dex 8KB
resources.ap_ 35KB
Touch.apk 41KB
.classpath 280B
assets
default.properties 362B
.project 841B
gen
cn
m15
xys
R.java 1KB
第十三讲-单点与多点触摸
关于作者.txt 87B
Touch
AndroidManifest.xml 877B
res
layout
main.xml 2KB
drawable-ldpi
icon.png 2KB
drawable-mdpi
jay.png 24KB
item.png 3KB
drawable-hdpi
icon.png 4KB
values
strings.xml 193B
proguard.cfg 1KB
src
cn
m15
xys
ViewActivity.java 2KB
startActivity.java 1KB
SurfaceViewAcitvity.java 4KB
bin
cn
m15
xys
ViewActivity$MyView.class 3KB
SurfaceViewAcitvity.class 972B
R.class 475B
ViewActivity.class 663B
R$layout.class 370B
R$attr.class 316B
startActivity.class 1KB
R$id.class 488B
R$string.class 403B
startActivity$1.class 1KB
startActivity$2.class 1KB
SurfaceViewAcitvity$MyView.class 4KB
R$drawable.class 431B
classes.dex 8KB
resources.ap_ 35KB
Touch.apk 41KB
.classpath 280B
assets
default.properties 362B
.project 841B
gen
cn
m15
xys
R.java 1KB
android中处理各种触摸事件.txt 3KB
MTVisTestActivity.rar 10KB
MTVisTestActivity
MTVisTestActivity
src
MTVisTestActivity.java 634B
MTView.java 3KB
bin
MTVisTestActivity.apk 9KB
共 71 条
- 1
资源评论
- 月亮猫2014-06-24初学者挺有用的
- slimfish2013-08-05不错,有一定的借鉴意义,值得看!
arto_o
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功