View中如何进行手势识别onFling动作实现介绍

2016-02-19 09:37 9 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的View中如何进行手势识别onFling动作实现介绍,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

很多网友发现Android中手势识别提供了两个类,由于Android 1.6以下的版本比如cupcake中无法使用android.view.GestureDetector,而 android.gesture.Gesture是Android 1.6开始支持的,考虑到仍然有使用Android 1.5固件的网友,就来看下兼容性更强的android.view.GestureDetector。在 android.view.GestureDetector类中有很多种重载版本,下面我们仅提到能够自定义在View中的两种方法,分别为 GestureDetector(Context context, GestureDetector.OnGestureListener listener) 和GestureDetector(Context context, GestureDetector.OnGestureListener listener, Handler handler) 。我们可以看到第一个参数为Context,所以我们想附着到某View时,最简单的方法就是直接从超类派生传递Context,实现 GestureDetector里中提供一些接口。

下面我们就以实现手势识别的onFling动作,在CwjView中我们从View类继承,当然大家可以从TextView等更高层的界面中实现触控。
代码如下:

class CwjView extends View {
private GestureDetector mGD;
public CwjView(Context context, AttributeSet attrs) {
super(context, attrs);
mGD = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX()); //计算滑动的距离
if (Math.abs(dx) MAJOR_MOVE && Math.abs(velocityX) Math.abs(velocityY)) { //降噪处理,必须有较大的动作才识别
if (velocityX 0) {
//向右边

} else {
//向左边
}
return true;
} else {
return false; //当然可以处理velocityY处理向上和向下的动作
}
}
});
}
/*提示大家上面仅仅探测了Fling动作仅仅实现了onFling方法,这里相关的还有以下几种方法来实现具体的可以参考我们以前的文章有详细的解释:
boolean onDoubleTap(MotionEvent e)
boolean onDoubleTapEvent(MotionEvent e)
boolean onDown(MotionEvent e)
void onLongPress(MotionEvent e)
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
void onShowPress(MotionEvent e)
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
*/
//接下来是重点,让我们的View接受触控,需要使用下面两个方法让GestureDetector类去处理onTouchEvent和onInterceptTouchEvent方法。
@Override
public boolean onTouchEvent(MotionEvent event) {
mGD.onTouchEvent(event);
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return mGD.onTouchEvent(event);
}
}

本节关于View中手势识别的内容就讲这些。大家知道,很多Android设备都提供了重力感应器和加速度感应器,而稍好些的设备还具备陀螺仪感应器,提供测试角速度功能。下一节将为大家讲解重力感应知识。

来源:http://www.tulaoshi.com/n/20160219/1591519.html

延伸阅读
标签: 心理健康
慢性支气管炎是一种非常常见的慢性病,在日常的生活中也是非常普遍的。而慢性支气管炎的治疗方法是非常的多的,并且很多都是非常有效的,而不管采用哪种治疗方法,对于患者的心理护理及调理是非常重要的,今天图老师小编就为大家介绍一下吧! 慢性支气管炎的心理护理 慢性支气管炎是老年人的常见病,由于疾病本身的特点,病程...
唇部护理就是对嘴唇进行养护。双唇对抗环境侵扰的耐力是整个身体肌肤中最弱、最容易衰老的。唇上的皮肤一直裸露在外,很容易受环境的侵害,因此保湿、补水就是冬季护唇的重点功课。 护理技巧: 动人的双唇,能在一动一静、一颦一笑间,演绎出千种妩媚、万般风情。不要以为涂唇膏是一件简单的事情,要使唇部更迷人,光凭一支唇膏...
四种切实有效的胎教方法(图) 四种切实有效的胎教方法 一、音乐胎教 目前使用最广泛的胎教方法有以下4种方式: 母亲欣赏:听乐曲时,一定要心静,努力进入音乐的意境中,还可以想象腹中胎儿欢乐静听的样子。孕6周起进行。 一般固定在临睡前较合适,每天1—2次,每次15—20分钟,音乐强度在65—70分贝左右。乐曲要选择节奏和旋律都比较平...
标签: 孕期
孕中期性生活出血怎么办     在孕期中,性生活是无法避免的,但是如果在进行性生活后,孕妇出血了该怎么办呢?因为孕妇们这个时候一定非常的担心的。下面就素图老师小编一起了解下是怎么回事吧。        怀孕早期,夫妻双方的孕期性生活要注意,在妊娠早期应禁止性交。一般孕妇可以在怀...
标签: 亲子早教
现在的爸妈都很重视宝宝的教育,因此对胎教也很重视,胎教的方法有很多种,抚摸胎教就是其中一种,那么 如何进行抚摸胎教 ?抚摸胎教哪些方法及注意事项呢?一起来了解一下吧! 如何进行抚摸胎教?方法一:来回抚摸法实施月份:怀孕3个月以后,可以进行一些来回抚摸的练习。 具体做法:准妈妈在腹部完全松弛的情况下,用手从上至下、从左...

经验教程

688

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部