2013-09-25 3 views
2

Да, я могу создать ToggleButton с 2 картинками (Вкл., Выкл.) Но я хочу создать ToggleButton с 3-5 картинками.Как создать анимированный ToggleButton?

Например, когда есть это и я нажимаю:

  1. Off картины
  2. Средний фотография
  3. На картинке

А когда его и я нажимаю:

  1. На изображении
  2. Средний фотография
  3. картина OFF

Так что, как кадр анимации, который можно использовать с длительностью с ImageView.

+0

вы что-то пробовали? например, играя с STYLES? – bofredo

ответ

1

EDIT:

Вы можете использовать Frame Animation: В res/drawable/myanim.xml:

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/pic_one" android:duration="50"/> 
    <item android:drawable="@drawable/pic_two" android:duration="50" /> 
    <item android:drawable="@drawable/pic_three" android:duration="50" /> 
</animation-list> 

Вы можете использовать эту анимацию в качестве простой вытяжки:

<ImageView android:id="@+id/image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/myanim"/> 

Для запуска анимации вы делаете

AnimationDrawable backgroundDrawable = (AnimationDrawable) image.getDrawable(); 
backgroundDrawable.start(); 

Вы также можете использовать Value Animator. Я не тестировал это, но вы должны уметь добавить что-то подобное в обработчик onClick у вас:

int[] backgrounds = ...;//ids of the backgrounds for the button 
ValueAnimator anim = ValueAnimator.ofInt(0, backgrounds.length); 
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
    @Override 
    public void onAnimationUpdate(ValueAnimator animation) { 
     int i = (Integer) animation.getAnimatedValue(); 
     int backgroundId = backgrounds[i]; 
     yourButton.setBackgroundResource(backgroundId); 
    } 
}); 
anim.setDuration(500); //0.5 seconds 
anim.start(); 
+1

Да, но я думаю, что я могу сделать это с помощью стиля ToggleButton. –

+0

Например, я не использую картинку для фона «on» или «off», я могу использовать анимацию других изображений. –

+0

@ АлексейМаксимов Хорошо, я отредактировал свой ответ, добавил пример анимации кадров –

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