如何在屏幕上显示动画列表

时间:2012-09-05 17:19:06

标签: android android-layout

我正在查看animation-list的文档,XML布局很简单,但我很困惑他们如何在代码中处理它。

在该页面中,他们有类似的内容:

ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
 img.setBackgroundResource(R.drawable.spin_animation);

 // Get the background, which has been compiled to an AnimationDrawable object.
 AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

 // Start the animation (looped playback by default).
 frameAnimation.start();

但是他们从未在他们展示的XML中的任何地方引用spinning_wheel_image,也没有引用spin_animation ....他们的示例中旋转片段的id是“选中”

所以我想知道这两个引用来自哪里?为什么从未使用过“选中”的XML片段的实际ID?

谢谢!

编辑:

我将动画xml放入名为animation.xml

的文件中

现在在代码中我有这个:

ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
        img.setBackgroundResource(R.drawable.animation);

        // Get the background, which has been compiled to an AnimationDrawable object.
        AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

        // Start the animation (looped playback by default).
        frameAnimation.start();

2 个答案:

答案 0 :(得分:1)

  

但他们从未在他们展示的xml中的任何地方引用spinning_wheel_image

spinning_wheel_imageImageView的ID,可能来自与setContentView()LayoutInflater一起使用的布局资源。

  

也不是spin_animation ....他们的例子中旋转片段的id是"选择"

这可能是一个错字 - android:id没有AnimationDrawable。至少,它不在文档中。动画资源的名称基于文件名,文件名为spin_animation .xml

答案 1 :(得分:1)

在您明确指定动画之前,动画与任何视图都无关。它只定义了要完成的某些转换集。然后选择视图并对其应用动画。这使您可以将相同的动画应用于许多视图。您可能希望将动画XML文件移动到res/anim文件夹。