zoukankan      html  css  js  c++  java
  • Gesture(手势)浅析

    1.Gesture的作用

    ①在触摸屏上的连续触摸行为,形成某个方向上的移动趋势  (利用手势检测)

    ②连续画出一个不规则的行为  (利用增加手势)

    2.手势检测(GestureDetector)

    //创建GestureDetector
    
    public class GestureTest extends Activity  {
        GestureDetector detector = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //第一步:用匿名类实现接口,供创建GestureDetector时候使用。
            GestureDetector.OnGestureListener gestureListener = new GestureDetector.OnGestureListener() {
                @Override
                public boolean onDown(MotionEvent e) {
                    //在屏幕按下时触发
                    return false;
                }
    
                @Override
                public void onShowPress(MotionEvent e) {
                    //在屏幕按下、未移动和松开时候触发
                }
    
                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    //在屏幕按下时触发
                    return false;
                }
    
                @Override
                public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                    //在屏幕滑动的时候触发
                    return false;
                }
    
                @Override
                public void onLongPress(MotionEvent e) {
                    //在屏幕长按的时候触发
                }
    
                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                    //Touch了滑动一点距离后,拿起手时触发。velocityX表示“拖过”动作在横向的速度,velocityY表示“拖过”动作在纵向时的速度
                    return false;
                }
            };
            //第二步:构造方法public GestureDetector(Context context,GestureDetector.OnGestureListener listener)
            detector = new GestureDetector(this,gestureListener);
        }
    
        //第三步:重写Activity的onTouchEvent()方法,并将点击事件给GestureDetector处理
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            return detector.onTouchEvent(event);
        }
    }

    注:关于方法执行的顺序
    点击一下非常快的(不滑动)Touchup: 
    onDown->onSingleTapUp->onSingleTapConfirmed 

    点击一下稍微慢点的(不滑动)Touchup: 
    onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed

    点击后一直不滑动:onDown->onShowPress->onLongPress

    3.增加手势(放弃,不讲)

  • 相关阅读:
    6-6 小球下落 uva679
    6-5 移动的盒子 uva12657
    2-13 如何解决验证码代码实战
    2-11 如何生成用户名
    2-10 输入注册用户名字及获取用户信息.py
    2-9 Expected_conditions源码分析
    2-8 如何使用Expected_conditions判断元素是否可见
    在Excel中将数字设置成文本格式的技巧
    Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
    Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
  • 原文地址:https://www.cnblogs.com/rookiechen/p/5288184.html
Copyright © 2011-2022 走看看