如何修改代码以在 android 中显示图片幻灯片?
How to modify the code to have image slideshow in android?
我在制作 android 应用程序时试图制作几张图片的幻灯片。我在下面使用此代码
final int[] array = {R.drawable.cow_1, R.drawable.cow_2, R.drawable.cow_3, R.drawable.cow_4};
for (int i = 0; i < 4; i++){
final int finalI = i;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
animal_image.setImageResource(array[finalI]);
}
}, 4000);
}
我面临的问题是我没有逐张获取图像的幻灯片,而是代码直接显示第一张图像之后的最后一张图像。代码有问题,请帮我修改。
Try with below
final int[] array = {R.drawable.cow_1, R.drawable.cow_2, R.drawable.cow_3, R.drawable.cow_4};
for (int i = 0; i < 4; i++){
final int finalI = i;
Thread.sleep(4000);
animal_image.setImageResource(array[finalI]);
}
您必须添加 try{... }catch(Exception e){}
块。
您的代码正在做的是为每个图像创建一个 Handler
并将延迟设置为 4 秒。 for
循环将在每次迭代时立即 运行,所有已创建的处理程序将在 4 秒后 运行。这会导致显示最后一张图像,因为最后一个处理程序将在其余部分之后 运行 几毫秒。为了解决这个问题,您需要为每个处理程序设置一个增量计时器。
final int[] array = {R.drawable.cow_1, R.drawable.cow_2, R.drawable.cow_3, R.drawable.cow_4};
for (int i = 0; i < 4; i++){
final int finalI = i;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
animal_image.setImageResource(array[finalI]);
}
}, 4000 * finalI);
}
使用上面给定的代码,将显示第一张图片,其他所有图片将根据图片编号在4秒的倍数后显示(4秒后显示图片2,4秒后显示图片3 8 秒后显示,图像 4 将在 12 秒后显示,依此类推。
我在制作 android 应用程序时试图制作几张图片的幻灯片。我在下面使用此代码
final int[] array = {R.drawable.cow_1, R.drawable.cow_2, R.drawable.cow_3, R.drawable.cow_4};
for (int i = 0; i < 4; i++){
final int finalI = i;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
animal_image.setImageResource(array[finalI]);
}
}, 4000);
}
我面临的问题是我没有逐张获取图像的幻灯片,而是代码直接显示第一张图像之后的最后一张图像。代码有问题,请帮我修改。
Try with below
final int[] array = {R.drawable.cow_1, R.drawable.cow_2, R.drawable.cow_3, R.drawable.cow_4};
for (int i = 0; i < 4; i++){
final int finalI = i;
Thread.sleep(4000);
animal_image.setImageResource(array[finalI]);
}
您必须添加 try{... }catch(Exception e){}
块。
您的代码正在做的是为每个图像创建一个 Handler
并将延迟设置为 4 秒。 for
循环将在每次迭代时立即 运行,所有已创建的处理程序将在 4 秒后 运行。这会导致显示最后一张图像,因为最后一个处理程序将在其余部分之后 运行 几毫秒。为了解决这个问题,您需要为每个处理程序设置一个增量计时器。
final int[] array = {R.drawable.cow_1, R.drawable.cow_2, R.drawable.cow_3, R.drawable.cow_4};
for (int i = 0; i < 4; i++){
final int finalI = i;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
animal_image.setImageResource(array[finalI]);
}
}, 4000 * finalI);
}
使用上面给定的代码,将显示第一张图片,其他所有图片将根据图片编号在4秒的倍数后显示(4秒后显示图片2,4秒后显示图片3 8 秒后显示,图像 4 将在 12 秒后显示,依此类推。