• 手势监听GestureDetector 案例


    以下只做长按和甩出(用户按下朝某一方向甩动手指)案例

    OnGestureListener可以查看到更多的手势事件

    • 案例
    package com.qf.mobliesafe.activity;
    
    import com.qf.mobliesafe.R;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.GestureDetector.SimpleOnGestureListener;
    
    public abstract class BaseSetupActivity extends Activity {
    
        GestureDetector mGestureDetector;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            mGestureDetector = new GestureDetector(this,
                    new SimpleOnGestureListener() {
    
    //          SimpleOnGestureListener继承 OnGestureListener
    
                    //长按事件 其实大家可以自行查看
                    @Override
                    public void onLongPress(MotionEvent e) {
                        // TODO Auto-generated method stub
                        super.onLongPress(e);
                    }
                        /**
                         * fling 用户按下并向某一个方法甩动 e1 按下的时候 e2 终点松手时候 velocityX
                         * 用户在x轴移动的距离 以秒计算 向左或者向有移动的距离(左负右正) velocityY 同上
                         * 
                         */
                        @Override
                        public boolean onFling(MotionEvent e1, MotionEvent e2,
                                float velocityX, float velocityY) {
                            // 如果x轴速率过慢
                            if (Math.abs(velocityX) < 100) {
                                // 如果用户按下甩动的时候Y偏移轴过大
                            } else if (Math.abs(e1.getRawY() - e2.getRawY()) > 200) {
    
                            }// 两个点移动距离
                            else if (e2.getRawX() - e1.getRawX() > 150) {
                                previous(null);
                            } else if (e1.getRawX() - e2.getRawX() > 150) {
                                next(null);
                            }
                            return super.onFling(e1, e2, velocityX, velocityY);
                        }
    
                    });
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            // 交付事件给我们自定义的mGestureDetector
            mGestureDetector.onTouchEvent(event);
            return super.onTouchEvent(event);
        }
    
        abstract void previous(View v);
    
        abstract void next(View v);
    }
    
  • 相关阅读:
    【Python爬虫】第五课(b站弹幕)
    【Python爬虫】第四课(查询照片拍摄地址)
    一些tips
    【Python爬虫】第三课(提取数据)
    【Python爬虫】第二课(请求头设置)
    【Python爬虫】第一课
    【数据分析】如何进行数据分析
    【数据分析】派单排序策略优化验证(附sql查询代码)
    python基础01
    消息
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152156.html
Copyright © 2020-2023  润新知