Я знаю, как масштабировать кнопку до определенного значения, но есть ли способ увеличить/уменьшить размер кнопки за раз, пока пользователь прикасается к ней? Что-то вроде этого:Кнопка масштаба Android на сенсорном экране
Button myButton = (Button)findViewById(R.id.myButton);
myButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Some timer action here or is there a better way?
v.setScaleX(v.getScaleX() + 0.1f);
v.setScaleY(v.getScaleY() + 0.1f);
return true;
}
else if(event.getAction() == MotionEvent.ACTION_UP) {
v.setScaleX(1);
v.setScaleY(1);
return true;
}
return false;
}
});
Другая идея - не работает:
myButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
myButton.setScaleX(myButton.getScaleX() + 0.1f);
myButton.setScaleY(myButton.getScaleY() + 0.1f);
}
};
while(event.getAction() != MotionEvent.ACTION_UP){ //Seems to be an infinite loop
timer.schedule(timerTask, 100);
}
}
else if(event.getAction() == MotionEvent.ACTION_UP) {
v.setScaleX(1);
v.setScaleY(1);
}
return false;
}
});
И есть ли способ, чтобы сделать все это с XML (рисуем и анимации)?
[Здесь] (http://www.tutorialspoint.com/android/android_animations.htm) является очень хорошим примером за то, чего вы пытаетесь достичь. Вместо изображения в учебнике вы можете анимировать свою кнопку. – chejaras