I know how to scale the button to a determinated value, but is there a way to increase/decrease the button size per time as long the user is touching it? Something like this
Since API 21 (Lollipop) an xml-only solution is available based on the stateListAnimator attribute. Take a look at this answer of a similar question for an example.
Try the following:
@Override
public boolean onTouch(View v, MotionEvent motionEvent) {
int action = motionEvent.getAction();
if (action == MotionEvent.ACTION_DOWN) {
v.animate().scaleXBy(100f).setDuration(5000).start();
v.animate().scaleYBy(100f).setDuration(5000).start();
return true;
} else if (action == MotionEvent.ACTION_UP) {
v.animate().cancel();
v.animate().scaleX(1f).setDuration(1000).start();
v.animate().scaleY(1f).setDuration(1000).start();
return true;
}
return false;
}
This should do the trick ;)