如何正确加载服务器中的图像?

时间:2011-03-29 15:24:14

标签: android

我有下面的代码,当您尝试加载一个或两个图像时,此代码可以正常工作。但问题是,当你在一个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;
 }

2 个答案:

答案 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即可开始使用。