我正在查看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();
答案 0 :(得分:1)
但他们从未在他们展示的xml中的任何地方引用spinning_wheel_image
spinning_wheel_image
是ImageView
的ID,可能来自与setContentView()
或LayoutInflater
一起使用的布局资源。
也不是spin_animation ....他们的例子中旋转片段的id是"选择"
这可能是一个错字 - android:id
没有AnimationDrawable
。至少,它不在文档中。动画资源的名称基于文件名,文件名为spin_animation .xml
。
答案 1 :(得分:1)
在您明确指定动画之前,动画与任何视图都无关。它只定义了要完成的某些转换集。然后选择视图并对其应用动画。这使您可以将相同的动画应用于许多视图。您可能希望将动画XML文件移动到res/anim
文件夹。