Android中的onTouch()事件如何区分单击事件和滑动事件
2014-07-15 14:34
615 查看
private boolean isDown = false;
private float x1 = 0;
private float x2 = 0;
private float y1 = 0;
private float y2 = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x1 = event.getX();
y1 = event.getY();
isDown = true;
break;
case MotionEvent.ACTION_UP:
isDown = false;
break;
case MotionEvent.ACTION_MOVE:
x2 = event.getX();
y2 = event.getY();
break;
default:
break;
}
switch (v.getId()) {
case R.id.button_say:
if (event.getAction() == MotionEvent.ACTION_DOWN) {
StartTalk();
StopAudio();
// voiceChangeBtn.setImageResource(R.drawable.ptz_microphone_on1);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
StopTalk();
StartAudio();
// voiceChangeBtn.setImageResource(R.drawable.ptz_microphone_on);
}
break;
case R.id.ipcamclient_whole_view:
dismissAllPopupwindow();
break;
case R.id.camera_flip_viewPager:
if (Math.abs((x1 - x2)) < 25 && Math.abs((y1 - y2)) < 25) {
if (isLandScreem && !isDown) {
dismissAllPopupwindow();
showBottom();
} else if (!isLandScreem && !isDown) {
dismissAllPopupwindow();
}
}
break;
default:
break;
}
return false;
}
private boolean isDown = false;
private float x1 = 0;
private float x2 = 0;
private float y1 = 0;
private float y2 = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x1 = event.getX();
y1 = event.getY();
isDown = true;
break;
case MotionEvent.ACTION_UP:
isDown = false;
break;
case MotionEvent.ACTION_MOVE:
x2 = event.getX();
y2 = event.getY();
break;
default:
break;
}
switch (v.getId()) {
case R.id.button_say:
if (event.getAction() == MotionEvent.ACTION_DOWN) {
StartTalk();
StopAudio();
// voiceChangeBtn.setImageResource(R.drawable.ptz_microphone_on1);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
StopTalk();
StartAudio();
// voiceChangeBtn.setImageResource(R.drawable.ptz_microphone_on);
}
break;
case R.id.ipcamclient_whole_view:
dismissAllPopupwindow();
break;
case R.id.camera_flip_viewPager:
if (Math.abs((x1 - x2)) < 25 && Math.abs((y1 - y2)) < 25) {
if (isLandScreem && !isDown) {
dismissAllPopupwindow();
showBottom();
} else if (!isLandScreem && !isDown) {
dismissAllPopupwindow();
}
}
break;
default:
break;
}
return false;
}
相关文章推荐
- Android 鼠标事件 (单击,双击,滑动)
- (Android) 单击屏幕事件和滑动屏幕事件共存的解决方案
- android onTouchEvent 左右手势滑动事件处理
- Android通过onTouch事件实现单击,双击,长按
- Android导航中Fragment里实现ViewPager滑动和RadioButton单击事件
- android onTouchEvent 左右手势滑动事件处理
- android onTouchEvent 左右手势滑动事件处理
- Android之如何在XML中添加单击事件
- android处理单击双击和滑动事件
- android onTouchListener中滑动时,x坐标和y坐标如何分布——轮播制作(二)
- Android 触屏事件 (单击,双击,滑动)
- android 单击事件和滑动事件冲突
- Android onTouch、OnLongClick、onClick及ScrollView滑动事件冲突
- Android onTouch、OnLongClick、onClick和ScrollView滑动事件冲突
- Android 鼠标事件 (单击,双击,滑动)
- (Android) 单击屏幕事件和滑动屏幕事件共存的解决方案
- UIScrollView,点击、滑动翻页事件的区分以及如何直接获取UIScrollView上的点击事件
- android onTouchEvent 左右手势滑动事件处理
- xamarin android如何监听单击事件
- Android如何让ListView的子组件按钮响应单击事件并修改该项子控件内容