Android ImageView循环显示,但是就显示最后一张

getAllImageName()方法是获得SD卡上的所有图片 30张,然后for循环中String filePath=AsyncImageLoader.path+"/"+list.get(i); 是获得图片的具体路径,想在点击Btn_play_ClickEvent按钮事件,在ImageView中循环显示这些图片,截图的方法只是显示最后一张,求解怎么实现循环显示!!!!

需要异步加载图片,不然它会在完全循环结束后才更新UI,也就是永远是最后一张。

你应该使用AsyncTask

[list]
[*]在doInBackground里面加载。
[*]在onPostExecute里设置图片。
[/list]

http://developer.android.com/reference/android/os/AsyncTask.html

上面的代码copy了你的,还没改好。请无视。

[code="java"]
class Btn_play_ClickEvent implements OnClickListener {
@Override
public void onClick(View arg0) {
try {
new ExecuteChangeImg().execute(null, null, null);
Thread.sleep(1000);
} catch (InterruptedException e) {
HLog.writeLog(HLog.ERROR, e.getMessage());
}
}
}

class ExecuteChangeImg extends AsyncTask {
@Override
protected String doInBackground(String... filePaths) {
List list = WeatherDao.getAllImageName();
for (int i = 0; i < list.size(); i++) {
String filePath = AsyncImageLoader.path + "/" + list.get(i);
File file = new File(filePath);
if (!file.exists()) {
filePath = AsyncImageLoader.DefaultImg;
}
Bitmap bmp = BitmapFactory.decodeFile(filePath);
publishProgress(bmp);
}
return "全部结束!";
}

protected void onProgressUpdate(Bitmap... bitmap) {
    imageView.setImageBitmap(bitmap[0]);
}

}
[/code]