So I think I have a very simple issue but I can't seem to figure it out.
I have an ImageView
and I am using it's setOnTouchListener
method (OnTouch
).
How can I differentiate between the ACTION_DOWN
event and ACTION_MOVE
event?
Even when I just click (touch) on the ImageView
, ACTION_MOVE
event gets called.
My goal is to open something(do anything) when the user clicks on it and move it when user holds it and moves it.
private int initialX;
private int initialY;
private float initialTouchX;
private float initialTouchY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = params.x;
initialY = params.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
return true;
case MotionEvent.ACTION_MOVE:
params.x = initialX + (int) (event.getRawX() - initialTouchX);
params.y = initialY + (int) (event.getRawY() - initialTouchY);
mWindowManager.updateViewLayout(mImgFloatingView, params);
// Log.d("Params", "X: " + params.x + ". Y: " + params.y + ".");
if(params.x == initialX && params.y == initialY) {
Toast.makeText(getBaseContext(), "Test", Toast.LENGTH_SHORT).show();
}
return true;
}
return false;
}