如何创建动画ToggleButton?

时间:2013-09-25 15:05:06

标签: android animation togglebutton

是的,我可以创建带有2张图片的ToggleButton(On,Off)但是我想要创建一个包含3-5张图片的ToggleButton。

例如,当它关闭时我点击:

  1. 关闭图片
  2. 中间图片
  3. 图片
  4. 何时打开并点击:

    1. 图片
    2. 中间图片
    3. 关闭图片
    4. 所以它就像帧动画,我可以使用ImageView持续时间。

1 个答案:

答案 0 :(得分:1)

编辑:

您可以使用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>

然后,您可以将此动画用作普通的drawable:

<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();