如何在Android动画中设置特定帧

3

我有一个逐帧动画,当调用停止方法时,我想设置特定的帧。我做了很多搜索,但没有找到我需要的内容。

这个方法存在吗?能否实现?

2个回答

4

在AnimationDrawable上使用此方法:animationDrawable.selectDrawable(index)


这似乎对我没有任何作用。我的动画中有7个帧,它从第0帧开始,当我执行myAnimation.selectDrawable(5)时,它根本没有改变。 - flexd
AnimationDrawable animationDrawable = (AnimationDrawable)frameImage.getBackground(); animationDrawable.stop(); animationDrawable.selectDrawable(0); 这是我的代码 - muyiou

1
假设逐帧动画是指在ImageView的背景中提供的AnimationDrawable。可以通过以下方式实现(或通过xml):
        AnimationDrawable animationDrawable = new AnimationDrawable();
        animationDrawable.addFrame(drawableFrame1, 0);
        animationDrawable.addFrame(drawableFrame2, 1);
        animationDrawable.addFrame(drawableFrame3, 2);
        animationDrawable.addFrame(drawableFrame4, 3);
        iv = new ImageView(this);
        iv.setBackgroundDrawable(animationDrawable);

以下是检索给定帧并将其设置为ImageView背景的代码:

      onStop() {
            Drawable drawableFrame2 = ((AnimationDrawable)iv.getBackground()).getFrame(2);
            iv.setBackgroundDrawable(drawableFrame2);
            iv.postInvalidate();
      }

我想要重用动画。我使用的停止方法是AnimationDrawable类的stop方法,而不是onStop()方法。 - miroku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接