OnTouchEvent выполняет дважды
Может кто-нибудь объяснить мне, почему onTouchEvent
выполняется дважды, и как я могу настроить его на запуск только один раз? Я не мог найти объяснения. Спасибо.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_iv = new ImageView(this);
_map = BitmapFactory.decodeResource(getResources(), R.drawable.image);
_iv.setImageBitmap(_map);
_iv.invalidate();
setContentView(_iv);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
double X = event.getX();
double Y = event.getY();
Toast.makeText(this, "X: " + X + " Y: " + Y, Toast.LENGTH_SHORT).show();
return super.onTouchEvent(event);
}
Ответы
Ответ 1
Выполняется для каждого события. В этом случае это было бы для событий ACTION_DOWN
и ACTION_UP
. Он также будет выполняться для события ACTION_MOVE
много, много раз.
Чтобы он выполнялся только в одном случае, выполните следующие действия:
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
** CODE **
break;
case MotionEvent.ACTION_MOVE:
** CODE **
break;
case MotionEvent.ACTION_UP:
** CODE **
break;
}
Ответ 2
В операторе switch верните false для всех событий, которые вам не нужны.