gpt4 book ai didi

android - 如何下载图像(数千张图像)并在 Android 的 ListAdapter 中渲染它们?

转载 作者:行者123 更新时间:2023-11-30 01:53:34 26 4
gpt4 key购买 nike

我的任务是使用 Rest 调用下载图像 URL,并使用 Android 适配器 将它们渲染到 ListView 中。为了进行 Rest 调用,我使用 retrofit 返回一个 Json(Json 有图像的 URL)。

我正在使用 picasso 从服务器下载图像并将它们渲染到 Listview 中。一切正常,因为我现在只有几张图片要下载。

当我要下载 500 多张图片时,如何完成任务。最好的方法是什么。

MyAdapter 类

@Override
public View getView(int position, View convertView, ViewGroup parent) {

ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView);

Picasso
.with(context)
.load("http://i.imgur.com/rFLNqWI.jpg")
.transform(imageTransformation)
.into(imageView);
return convertView;
}

上面的代码很简单,就是根据计数渲染一张图片。任何帮助将不胜感激。

这是在 count(imagesURL) 的基础上运行循环并在上面的代码中使用 picasso 下载它们的正确方法吗?或者有什么更好的解决方案吗?

编辑-2

我想我误解了你们。我的问题是当我有 1000 个图像 URL 时如何实现上述场景。

最佳答案

使用Picasso 进入getView 方法即可。但是您必须使用 Holder Pattern 来保存 ImageView 的实例。

@Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolderItem viewHolder;


if(convertView==null || !(convertView.getTag() instanceof ViewHolderItem )){

// inflate the layout
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(layoutResourceId, parent, false);

// well set up the ViewHolder
viewHolder = new ViewHolderItem();
viewHolder.imageViewItem = (ImageView) convertView.findViewById(R.id.imageView);

// store the holder with the view.
convertView.setTag(viewHolder);

}else{
// we've just avoided calling findViewById() on resource everytime
// just use the viewHolder
viewHolder = (ViewHolderItem) convertView.getTag();
}




Picasso
.with(context)
.load("http://i.imgur.com/rFLNqWI.jpg")
.transform(imageTransformation)
.into(viewHolder.imageViewItem);




return convertView;

}

static class ViewHolderItem {
ImageView imageViewItem;
}

关于android - 如何下载图像(数千张图像)并在 Android 的 ListAdapter 中渲染它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615825/

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