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);
}
}

浙公网安备 33010602011771号