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();
}
}
};