我正在尝试从SD卡文件夹图像中一个接一个地加载图像,并在几秒钟后使用处理程序,它们会自动更改,但不会更改其他图像。只显示一个图像
在这里,我把获取和设置图像的处理程序代码放在创建活动上
主页活动.java
final Handler imagehandler = new Handler();
Runnable runnable;
runnable = new Runnable()
{
int i=0;
@SuppressLint("SdCardPath")
public void run()
{ // slider image run
File dir = new File("/mnt/sdcard/images/");
File file[]=dir.listFiles();
for (int i=0;i<file.length;i++)
{
Drawable d = (Drawable) Drawable.createFromPath(file[i].toString());
imageslider.setImageDrawable(d);
imagehandler.postDelayed(this, 4000);
// for interval
}
};
imagehandler.postDelayed(runnable,10);
}
在此之前从Runnable中移除for循环将始终显示imageView中的最后一个图像。代替循环使用计数器显示图像,如:
File dir = new File("/mnt/sdcard/images/");
File file[]=dir.listFiles();
public static int count=0;
new Handler().postDelayed(new Runnable() {
public void run() {
if(count<file.length){
Drawable d = (Drawable)
Drawable.createFromPath(file[count].toString());
imageslider.setImageDrawable(d);
count++; //<<< increment counter here
}
else{
// reset counter here
count=0;
}
}
}, 4000);