在 Xamarin.Form 下扩展手势

 手势基础(Android & iOS)

> Andorid手势基础

当用户触摸屏幕时会产生很多的触摸事件,down、up、move等等。View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,如下:

[java] view plain copy

print?

public class MainActivity extends Activity {  

...  

// This example shows an Activity, but you would use the same approach if  

// you were subclassing a View.  

@Override  

public boolean onTouchEvent(MotionEvent event){   

          

    int action = MotionEventCompat.getActionMasked(event);  

          

    switch(action) {  

        case (MotionEvent.ACTION_DOWN) :  

            Log.d(DEBUG_TAG,"Action was DOWN");  

            return true;  

        case (MotionEvent.ACTION_MOVE) :  

            Log.d(DEBUG_TAG,"Action was MOVE");  

            return true;  

        case (MotionEvent.ACTION_UP) :  

            Log.d(DEBUG_TAG,"Action was UP");  

            return true;  

        case (MotionEvent.ACTION_CANCEL) :  

            Log.d(DEBUG_TAG,"Action was CANCEL");  

            return true;  

        case (MotionEvent.ACTION_OUTSIDE) :  

            Log.d(DEBUG_TAG,"Movement occurred outside bounds " +  

                    "of current screen element");  

            return true;        

        default :   

            return super.onTouchEvent(event);  

    }        

}  

    OnTouch提供的事件还是相对较简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦,因为我们要根据用户触摸的轨迹去判断是什么手势。Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势。

 

public class GestureDetector extends Object    

Java.lang.Object

android.view.GestureDetector

 

  GestureDetector属于android.view包,android还提供了android.gesture包支持更多的手势操作,以后我们会介绍到。官方的介绍中使用了GestureDetectorCompat处理手势识别,为什么使用GestureDetectorCompat替换了GestureDetector呢,官方的是这样解释的:

https://img-blog.csdn.net/20131121153739828

 

 GestureDetectorCompat实例化有下面两种方法:

https://img-blog.csdn.net/20131121154752046

 

GestureDetector

GestureDetector类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestureListener;SimpleOnGestureListener类是GestureDetector提供给我们的一个更方便的响应不同手势的类,它实现了上述两个接口,该类是static class,也就是说它实际上是一个外部类,我们可以在外部继承这个类,重写里面的手势处理方法。因此实现手势识别有两种方法,一种实现OnGestureListener接口,另一种是使用SimpleOnGestureListener类。

 

OnGestureListener有下面的几个动作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值