我想创建一个具有图像视图的应用程序,该图像将显示一系列图像作为动画,例如10张图像背靠背,只有几英里秒将它们分开,我希望能够通过单击按钮更改系列每次我点击它时,系列图像都会改变(可绘制的数组)我该怎么做?
我尝试过将图像作为精灵表,然后通过在run方法(线程)中调用绘图方法来设置动画,但我无法更改精灵。
除此之外,我不能浪费太多时间将图像转换为精灵
答案 0 :(得分:0)
为什么不使用标准的AnimationDrawable?
<强>更新强>
如果我已经理解了更改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);
}