Android:如何让onTouch像onClick一样工作?
我使用本教程显示地图视图,并将onTouch事件设置为在单击特定区域时显示toast消息(纬度/经度)。现在我的问题是,即使要移动地图,我触摸屏幕时也会显示Toast消息?我只想在触碰点和触碰点相同的情况下显示土司。如何实现这一点?这是正确的方法吗?我很肯定有更好的办法Android:如何让onTouch像onClick一样工作?,android,map,touch-event,Android,Map,Touch Event,我使用本教程显示地图视图,并将onTouch事件设置为在单击特定区域时显示toast消息(纬度/经度)。现在我的问题是,即使要移动地图,我触摸屏幕时也会显示Toast消息?我只想在触碰点和触碰点相同的情况下显示土司。如何实现这一点?这是正确的方法吗?我很肯定有更好的办法 if (event.getAction() == 0) { touchX = (int) event.getX(); touchY = (int) event.getY(); }
if (event.getAction() == 0) {
touchX = (int) event.getX();
touchY = (int) event.getY();
}
if(event.getAction() == 1) {
if(event.getX() == touchX && event.getY()== touchY){
GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(), (int)event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6() / 1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
}
}
检查是否在中设置了移动位
这对我来说很有效,当我按下并拖动时,什么都不会发生,但如果我按下并释放它,它就起作用了!就像你的行为一样
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP){
// yer Code here ...........
}
return false;
}
否,
event.getAction()==0
不是正确的方法event.getAction()
返回所有标志。您应该只检查一点。但由于某些原因,它不起作用:(我仍然在触摸屏上显示toast。您应该打印出所有事件及其标志,然后进行一些测试,查看根据用户输入生成的事件。然后决定过滤事件的策略。使用(getAction()&MotionEvent.ACTION\u掩码)
只过滤出动作。打印出来(或记录)。结果意味着:0-向下、1-向上、2-移动、3-取消。这对我来说不起作用:(每当我松开手指时,它就会开火。即使我拖动了一下。
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP){
// yer Code here ...........
}
return false;
}