• 5


    今天写了触摸时间,通过左右滑动和点击完成对记账本的添加删除修改等

    代码如下

    package com.yuukidach.ucount;
    
    import android.os.Bundle;
    import androidx.appcompat.app.AppCompatActivity;
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.view.View;
    
    public abstract class BaseActivity extends AppCompatActivity {
        private GestureDetector mGestureDetector;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
    
            //1 初始化  手势识别器
            mGestureDetector = new GestureDetector(this,new GestureDetector.SimpleOnGestureListener(){
                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                                       float velocityY) {// e1: 第一次按下的位置   e2   当手离开屏幕 时的位置  velocityX  沿x 轴的速度  velocityY: 沿Y轴方向的速度
                    //判断竖直方向移动的大小
                    if(Math.abs(e1.getRawY() - e2.getRawY())>100){
                        //Toast.makeText(getApplicationContext(), "动作不合法", 0).show();
                        return true;
                    }
                    if(Math.abs(velocityX)<150){
                        //Toast.makeText(getApplicationContext(), "移动的太慢", 0).show();
                        return true;
                    }
    
                    if((e1.getRawX() - e2.getRawX()) >200){// 表示 向右滑动表示下一页
                        //显示下一页
                        next(null);
                        return true;
                    }
    
                    if((e2.getRawX() - e1.getRawX()) >200){  //向左滑动 表示 上一页
                        //显示上一页
                        pre(null);
                        return true;//消费掉当前事件  不让当前事件继续向下传递
                    }
                    return super.onFling(e1, e2, velocityX, velocityY);
                }
            });
    
        }
        /**
         * 下一个页面
         * @param view
         */
        public abstract void next(View view);
        /**
         * 上一个页面
         * @param view
         */
        public abstract void pre(View view);
    
        //重写activity的触摸事件
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            //2.让手势识别器生效
            mGestureDetector.onTouchEvent(event);
            return super.onTouchEvent(event);
        }
    }
    

      

  • 相关阅读:
    一小段代码体现出的编程艺术
    2013年:第十一届软交会今天开始
    干掉baidu地图Logo的CSS
    编程语言历史,你属于几零后?
    WebServer实现SQL数据库百度坐标转换转化的算法
    使用Nginx代理Ext.net2.0异步请求报错问题
    PostgreSQL9.3新增的json_populate_recordset函数使用问题
    坐标转换服务笔录
    关于extjs中文乱码和emptyText的问题
    百度地图Polyline画直线BUG
  • 原文地址:https://www.cnblogs.com/1329197745a/p/14899555.html
Copyright © 2020-2023  润新知