android点击和滑动事件的处理

在安卓开发中,处理点击和滑动事件至关重要,例如在视频播放时,点击暂停并显示菜单。实现这一功能,可以在Activity中覆写onTouchEvent()方法,通过ACTION_DOWN记录起点坐标,ACTION_UP时判断结束坐标,分析x、y变化来识别是点击还是滑动。对于特定控件的触摸事件,可以通过setOnTouchListener()设置监听。滑动事件中,通过比较ACTION_DOWN和ACTION_UP时的坐标差值来判断滑动方向,如左右滑动、上滑和下滑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在安卓应用开发的时候涉及到点击或者滑动事件的处理,比如在视频播放,点击屏幕,视频暂停播放,并且滑出菜单栏,左右上下滑动的处理:


1.在Activity里面写onTouchEvent(MotionEvent event)接受触摸事件;


2.当event.getAction() == MotionEvent.ACTION_DOWN的时候计算当前位置;


3.当event.getAction() == MotionEvent.ACTION_UP的时候计算当前的x,y值,如果x,y未变化,就只是普通的点击事件,如果x,y有变化,x变化说明做了左右滑动的操作,y有变化说明做了上下滑动的操作;


4.如果对某个控件设置触摸事件,就直接 mVideo_playing_status.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
}
return false;
}
});


5.滑动的代码:

private float x1 = 0;
private float x2 = 0;
private float y1 = 0;
private float y2 = 0;
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
x1 = event.getX();
y1 = event.getY();
}
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_UP) {
x2 = event.getX();
y2 = event.getY();
if(Math.abs(x1-x2)<=5 && Math.abs(y2-y1)<=5){
Log.d(TAG, "onTouchEvent MotionEvent.ACTION_DOWN");
//变化很小,当着是点击事件,在这做点击事件处理
}else if(x1<100&&x2-x1>50){
//右滑,当距离大于50的时候做右滑
Log.d(TAG, "onGestureListener KEYCODE_MENU");

}else  if(y2-y1>50){
//上滑

}else if(y1-y2>50){
//下滑
}
}
return false;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值