我有下面的代码,当您尝试加载一个或两个图像时,此代码可以正常工作。但问题是,当你在一个Activity中有很多图像时,所有图像必须首先加载才能进入。我的问题是,处理这些图像的最佳方法是什么?我希望图像逐个加载而不是同时加载。我希望它像Fedor制作的ListView一样加载“http://stackoverflow.com/questions/541966/android-how-do-i-do-a-lazy-load-of-images-in-listview”(注意:我没有使用ListView,我只是希望我的图像像这样加载)。请帮助我,我会非常感激。提前谢谢!
class ImageDownlaodThread extends Thread {
ImageDownloadMessageHandler imageDownloadMessageHandler;
String imageUrl;
@Override
public void run() {
Drawable drawable = LoadImageFromWebOperations(imageUrl);
Message message = imageDownloadMessageHandler.obtainMessage(1, drawable);
System.out.println("Message sent");
}
}
class ImageDownloadMessageHandler extends Handler {
View imageTextView;
}
@Override
public void handleMessage(Message message) {
progressBar.setVisibility(View.GONE);
imageTextView.setVisibility(View.VISIBLE);
}
}
Drawable LoadImageFromWebOperations(String url) {
Drawable d = null;
InputStream is = null;
try {
} catch (IOException e) {
e.printStackTrace();
}
return d;
}
答案 0 :(得分:2)
本教程是否有助于[TUT] ImageView with Loading Spinner:
http://www.anddev.org/novice-tutorials-f8/imageview-with-loading-spinner-t49439.html
它基本上显示了一个微调器,直到图像从远程站点加载: - )
你可以剥离代码以显示空白/任何你想要的东西,直到它加载。
如果您不希望任何事情发生,直到它们全部加载,您可以计算出有多少图像,然后在每次加载图像时递增。
答案 1 :(得分:0)
IMO,AsyncTask是最简单的方法;事实上,它基本上是为这类任务而建的。
在StackOverflow答案中讨论真的太多了。只需看Painless Threading即可开始使用。