gpt4 book ai didi

java - Android AsyncTask 下载多张图片

转载 作者:行者123 更新时间:2023-11-29 07:50:07 26 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有一个 AsyncTask 从 Web 下载图片并在 UI 中显示它(在 onPostExecute() 中我生成了一个新的 ImageView)。如何制作同时下载多个图像的 AsyncTask,并在下载时直接显示单个图像,即使其他图像还没有准备好?

这是我的代码:

public class DownloadImages extends
AsyncTask<Void, Void, Bitmap> {


@Override
protected Bitmap doInBackground(Void... params) {

Bitmap bitmap = null;
bitmap = downloadBitmap("HERE's MY URL");


return bitmap;
}

@Override
protected void onPostExecute(Bitmap result) {


ImageView image = new ImageView(context);
image.setImageBitmap(result);


((ViewGroup) planLinearLayout).addView(image);


}


}

public Bitmap downloadBitmap(String url) {
final AndroidHttpClient client = AndroidHttpClient
.newInstance("Android");
final HttpGet getRequest = new HttpGet(url);

try {
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w("ImageDownloader", "Error " + statusCode
+ " while retrieving bitmap from " + url);
return null;
}

final HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = null;
try {
inputStream = entity.getContent();
final Bitmap bitmap = BitmapFactory
.decodeStream(inputStream);


return bitmap;
} finally {
if (inputStream != null) {
inputStream.close();
}
entity.consumeContent();
}
}
} catch (Exception e) {
// Could provide a more explicit error message for IOException
// or
// IllegalStateException
getRequest.abort();
Log.w("ImageDownloader", "Error while retrieving bitmap from "
+ url);
} finally {
if (client != null) {
client.close();
}
}
return null;
}

}

最佳答案

由于您不能同时发出两个请求,您可以选择执行以下操作:

  • 首先,在您的 Activity 中,创建您的 AsyncTask 实例并使用诸如“firstImage”之类的参数执行它,然后在 doInBackground() 中,只需检查它是否是传递的参数值,如果是,则下载第一个图像。下载图像后,将其保存在局部变量或任何你想要的地方。然后返回一个字符串,如“firstImage”。在 onPostExecute 内部,只需检查结果的值并将图像传回将更新 UI 的 Activity 。
  • 其次,使用第一张图片更新 UI 后,使用类似“secondImage”的字符串进行第二次异步调用,并重复与之前相同的过程并更新 UI - 这会将第二张图片添加到 UI。您不需要图书馆!

关于java - Android AsyncTask 下载多张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21800092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com