gpt4 book ai didi

java - Android/Java异步图片下载任务不停运行

转载 作者:行者123 更新时间:2023-12-01 10:59:10 25 4
gpt4 key购买 nike

我正在尝试解析 JSON 有效负载并将信息放置在相对布局 View 中。

我使用这个标准异步下载例程来获取要放置在适当 ImageView 中的位图:

public class AsyncDownloadImage extends AsyncTask<String,Void,Bitmap>{

ImageView bmImage;

public AsyncDownloadImage(ImageView bmImage){

this.bmImage = bmImage;
}


@Override
protected Bitmap doInBackground(String... urls) {

String urldisplay = null;
urldisplay = urls[0];

Bitmap merchViewBitMap = Bitmap.createBitmap(90,90,Bitmap.Config.ARGB_8888);


try{

InputStream in = new URL(urldisplay).openStream();
merchViewBitMap = BitmapFactory.decodeStream(in);

in.close();

}catch(Exception e){
System.out.println(String.format("Image Download Exception ==> %s", e.toString()));

}

return merchViewBitMap;
}

@Override
protected void onPostExecute(Bitmap result) {

super.onPostExecute(result);
bmImage.setImageBitmap(result);

}
}

在Adapter类的getView方法中是这样调用的:

String imageUrl = String.format("https://www.xxxxxx.com/va/public/render_image?image_id=%s", currentMerchItem.getMt_image_id());

new AsyncDownloadImage(viewHolder.imageview).execute(imageUrl);

图像已下载并设置了 ImageView,但它们会重复且无限地下载。多个图像似乎位于 ImageView 中,当滚动浏览时,它们会发生变化,因为每个图像都是 gif。

下载列表中的最后一个图像后如何停止此操作?!

-TU

最佳答案

每次适配器的 View (例如 ListView )需要刷新项目的 View 时,都会调用适配器的 getView 方法。例如,当您滚动时,您将收到许多对 getview 方法的调用(当然取决于列表长度)。至少您需要管理在您的情况下已经从网络加载哪些图像。您还有很多用于延迟加载的开源代码,完全适合您这样的情况。

您也可以查看此帖子,它可能对您有帮助: Lazy load of images in ListView

关于java - Android/Java异步图片下载任务不停运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33456232/

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