我试着写一个非常基本的Android应用程序,在屏幕上一个接一个地显示大约5张图片。我希望它在大约10秒后显示不同的图片。任何人都可以告诉我如何解决这个问题。下面我概述了我要找的东西。
图1
图2
图3
图4
图5
全屏显示图1
等待10秒
删除图片1和显示图片2
等待10秒钟
删除图片2和显示图片3
等待10秒钟
删除图3和显示图片4
等待10秒钟
删除图片4和显示图片5
等待10秒钟
重新开始
答案 0 :(得分:38)
您是否考虑过使用Frame Animations?
您可以在anim文件夹中指定包含逐帧动画的xml,指定每个图像的持续时间以及其他设置,然后查看
<强>更新强>
当然,您也可以通过编程方式构建帧动画:
AnimationDrawable animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.image1), 100);
animation.addFrame(getResources().getDrawable(R.drawable.image2), 500);
animation.addFrame(getResources().getDrawable(R.drawable.image3), 300);
animation.setOneShot(false);
ImageView imageAnim = (ImageView) findViewById(R.id.img);
imageAnim.setBackgroundDrawable(animation);
// start the animation!
animation.start()
答案 1 :(得分:7)
您可以使用CountDownTimer
:请按以下步骤操作:
1)声明array
,其中包含图片的标识符
2)声明CountDownTimer
这样:
int i=0;
new CountDownTimer(10000,1000) {
@Override
public void onTick(long millisUntilFinished) {}
@Override
public void onFinish() {
imgView.setImageDrawable(sdk.getContext().getResources().getDrawable(array[i]));
i++;
if(i== array.length-1) i=0;
start();
}
}.start();
答案 2 :(得分:5)
创建blink.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selected" android:oneshot="false">
<item android:drawable="@drawable/Picture_1" android:duration="10000" />
<item android:drawable="@drawable/Picture_2" android:duration="10000" />
<item android:drawable="@drawable/Picture_3" android:duration="10000" />
<item android:drawable="@drawable/Picture_4" android:duration="10000" />
<item android:drawable="@drawable/Picture_5" android:duration="10000" />
</animation-list>
将blink.xml放在drawable文件夹中 在活动代码写这个。
ImageView mImageView ;
mImageView = (ImageView)findViewById(R.id.imageView); //this is your imageView
mImageView .setImageDrawable(getResources().getDrawable( R.drawable.blink));
然后你会得到你想要的东西。!
答案 3 :(得分:2)
创建一个Runnable
来执行你想要的更改(我想它会改变一个ImageView
的位图/ drawable),然后用延迟将它们发布到主线程循环,使用{ {1}}及其postDelayed()
方法。
要使它成为一个循环,你可以拥有可运行的帖子。