0

我正在查看动画列表的文档,并且 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 中的任何地方引用 spin_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();
4

2 回答 2

1

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

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

也不是 spin_animation ....他们示例中的旋转片段的 id 是“选定的”

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

于 2012-09-05T17:22:08.913 回答
1

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

于 2012-09-05T17:24:17.163 回答