我在应用程序中有一个ImageView。 我有2张可绘制文件的照片。 我想拍照ImagView 改变每一秒。 即: 一秒后
imagview.setImageDrawable(getResources().getDrawable(R.drawable.photo1));
几秒钟后
imagview.setImageDrawable(getResources().getDrawable(R.drawable.photo2));
此过程将持续到最后
我是怎么做到的?
答案 0 :(得分:9)
它被称为逐帧动画,由一系列Drawable对象定义,可用作View对象的背景。您可以找到详细信息here。示例代码发布在下面。 1 sec
的持续时间以毫秒为单位,您必须将其设为1000
。
spin_animation.xml文件:
<animation-list android:id="@+id/selected" android:oneshot="false">
<item android:drawable="@drawable/wheel0" android:duration="50" />
<item android:drawable="@drawable/wheel1" android:duration="50" />
<item android:drawable="@drawable/wheel2" android:duration="50" />
<item android:drawable="@drawable/wheel3" android:duration="50" />
<item android:drawable="@drawable/wheel4" android:duration="50" />
<item android:drawable="@drawable/wheel5" android:duration="50" />
</animation-list>
以下是加载和播放此动画的代码。
// Load the ImageView that will host the animation and
// set its background to our AnimationDrawable XML resource.
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();
停止动画
frameAnimation.stop();