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.增加手势(放弃,不讲)

  • 相关阅读:
    动态规划(1)
    dockerfile构架镜像(8)
    redis(1)
    递归算法(1)
    docker commit理解构建镜像(7)
    Node fs 创建多层文件夹
    SUSE系列---修改IP和hosts文件
    本地oracle可以通过localhost连接,无法通过ip地址连接解决方法,oracle远程连接配置
    PLSQL报错: ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
    StringUtils字符串工具类左侧补齐(leftPad)、右侧补齐(rightPad)、左右两侧补齐(center)工具方法
  • 原文地址:https://www.cnblogs.com/rookiechen/p/5288184.html
Copyright © 2011-2022 走看看