Is it possible to capture release of a button just as we capture click using onClickListener()
and OnClick()
?
I want to increase size of a
You have to handle MotionEvent.ACTION_CANCEL as well. So the code will be:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP ||
event.getAction() == MotionEvent.ACTION_CANCEL) {
increaseSize();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
resetSize();
}
}
};
Eric Nordvik has the right answer except that
event.getAction() == MotionEvent.ACTION_UP
never got executed for me. Instead I did implement
button.setOnClickListener(new OnClickListener() {
@Override
public boolean onClick(View v) {
resetSize();
}
};
for the touch ACTION_UP.
use an OnTouchListener or OnKeyListener instead.
You might be able to do this by overriding the onKeyDown
and onKeyUp
. These are both inherited from android.widget.TextView
. Please see the android.widget.Button doc for (a bit) more info.
You should set an OnTouchListener on your button.
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
increaseSize();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
resetSize();
}
}
};