如何连续更改图片ImageView?

时间:2015-02-23 14:51:34

标签: android android-imageview

我在应用程序中有一个ImageView。 我有2张可绘制文件的照片。 我想拍照ImagView  改变每一秒。 即:  一秒后

  imagview.setImageDrawable(getResources().getDrawable(R.drawable.photo1));

几秒钟后

   imagview.setImageDrawable(getResources().getDrawable(R.drawable.photo2));

此过程将持续到最后

我是怎么做到的?

1 个答案:

答案 0 :(得分:9)

它被称为逐帧动画,由一系列Drawable对象定义,可用作View对象的背景。您可以找到详细信息here。示例代码发布在下面。 1 sec的持续时间以毫秒为单位,您必须将其设为1000

res / drawable /文件夹中的

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();