Я использую пользовательские анимации на ACTION_DOWN
исобытиях моей кнопки. Однако, прямо сейчас, я вручную настройки OnTouchListener
каждого Button
вручную с помощью следующего кода:Настройка такой же анимации для многих кнопок
myButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View yourButton, MotionEvent theMotion) {
Animation animation;
switch (theMotion.getAction()) {
case MotionEvent.ACTION_DOWN:
animation = AnimationUtils.loadAnimation(NickNameScreenActivity.this, R.anim.button_down);
myButton.startAnimation(animation);
break;
case MotionEvent.ACTION_UP:
animation = AnimationUtils.loadAnimation(NickNameScreenActivity.this, R.anim.button_up);
myButton.startAnimation(animation);
break;
}
return false;
}
});
Это громоздко, как я должен повторить это для всех кнопок.
Есть ли способ установить его автоматически для всех кнопок или аккуратный XML-способ сделать это?
Как насчет реорганизации анонимного класса во внутренний класс, расширяющий класс 'View.OnTouchListener' и использующий его для всех кнопок? – ProtossShuttle
Спасибо, это хорошая идея. Кажется, я не могу избежать создания переменной для каждой кнопки в этом случае. –
Тогда как насчет написания пользовательского представления, расширяющего 'Button' и использующего его в xml? Возможно, вы можете заменить 'NickNameScreenActivity.this'' getContext() '. – ProtossShuttle