在安卓应用开发的时候涉及到点击或者滑动事件的处理,比如在视频播放,点击屏幕,视频暂停播放,并且滑出菜单栏,左右上下滑动的处理:
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;
}
在安卓开发中,处理点击和滑动事件至关重要,例如在视频播放时,点击暂停并显示菜单。实现这一功能,可以在Activity中覆写onTouchEvent()方法,通过ACTION_DOWN记录起点坐标,ACTION_UP时判断结束坐标,分析x、y变化来识别是点击还是滑动。对于特定控件的触摸事件,可以通过setOnTouchListener()设置监听。滑动事件中,通过比较ACTION_DOWN和ACTION_UP时的坐标差值来判断滑动方向,如左右滑动、上滑和下滑。
104

被折叠的 条评论
为什么被折叠?



