在imageview中动画如何动态更改图像系列

时间:2015-09-07 10:36:17

标签: android

我想创建一个具有图像视图的应用程序,该图像将显示一系列图像作为动画,例如10张图像背靠背,只有几英里秒将它们分开,我希望能够通过单击按钮更改系列每次我点击它时,系列图像都会改变(可绘制的数组)我该怎么做?

我尝试过将图像作为精灵表,然后通过在run方法(线程)中调用绘图方法来设置动画,但我无法更改精灵。

除此之外,我不能浪费太多时间将图像转换为精灵

2 个答案:

答案 0 :(得分:0)

为什么不使用标准的AnimationDrawable?

look here

<强>更新

如果我已经理解了更改imageview播放动画的意思,您只需要在onClickListener中使用此代码更新它,然后使用此代码设置新背景。

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

答案 1 :(得分:0)

我认为你需要ViewFlipper而不是imageView,  试试这样。

1.在你的布局中:

<ViewFlipper
    android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:flipInterval="40"    
        android:id="@+id/viewFlipper"
 >

2.然后在你的活动中:

 int gallerySplashrImages[]={/*id of the image you want to display(ex:R.drawable.calque0,R.drawable.calque1,...)*/};

     viewFlipper =(ViewFlipper)findViewById(R.id.viewFlipper); 
     viewFlipper.setAutoStart(true);
     for(int i=0;i<gallerySplashrImages.length;i++)
        {
            setFlipperImage(gallerySplashrImages[i]);
        }

3.setFlipperImage

 private void setFlipperImage(int res) 
  {
ImageView image = new ImageView(getApplicationContext());
image.setBackgroundResource(res);
viewFlipper.addView(image);
}