2012-01-19 2 views
0

Я пытаюсь создать кнопку, которая будет воспроизводить список анимации при нажатии.Как заставить кнопки Android показывать анимацию на себя при нажатии

Я сделал animation.xml показано здесь:

<?xml version="1.0" encoding="UTF-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/one" android:duration="500" /> 
    <item android:drawable="@drawable/two" android:duration="500" /> 
    <item android:drawable="@drawable/three" android:duration="500" /> 
    <item android:drawable="@drawable/four" android:duration="500" /> 
</animation-list> 

Также для функции OnClick:

b_button.setBackgroundResource(R.drawable.animation); 
AnimationDrawable frameAnimation = (AnimationDrawable) b_button.getBackground(); 
frameAnimation.setOneShot(true); 
frameAnimation.start(); 

При нажатии кнопки, анимация будет играть, однако, только один раз, после того, как я нажимаю его второй раз, он не будет воспроизводиться. Кроме того, как изменить кнопку обратно в исходное состояние? Значение серого по умолчанию кнопки.

Любая помощь приветствуется, Спасибо заранее

ответ

1
if (frameAnimation.isRunning()) { 
     frameAnimation.stop(); 
    } else { 
     frameAnimation.stop(); 
     frameAnimation.start(); 
    } 

попробовать это работает (с ONESHOT и без ONESHOT)? Анимация остановится на последнем кадре, поэтому вы можете добавить в xml, который является привлекательным, является серым по умолчанию. thx :)

+0

Спасибо за ваш ответ, я попытался добавить это после .start(), но что происходит, что он остановится в первом кадре. Знаете ли вы, как назвать собственный набор кнопок для выбора по умолчанию для серого по умолчанию? Спасибо – user1157751

+0

Обычно я использую изображение ... – JohnCookie

Смежные вопросы