【问题标题】:Use glide to insert image into ArrayList使用 glide 将图像插入 ArrayList
【发布时间】:2019-02-18 21:42:08
【问题描述】:

我知道如何使用 glide 将图像插入到常规 ImageView 中

(Glide.with(context) .load(url).morepossiblestuff() .into(imageView);)

但现在我有一个ArrayList,其中插入了一个图像('到目前为止来自可绘制对象,表示为 int)和文本,最后整个项目在 RecyclerView 中显示为卡片视图项目...

但是我的 RecyclerView 已经变得非常滞后,可能是因为直接从可绘制对象中加载所有内容,而没有调整大小(?)。

所以我坚持把 .png 放在 firebase 的文件夹中..

但如果一个项目看起来像这样:

        List.add(new Item(R.drawable.resource, "Title", "Description"));

如何使用 glide 而不是 R.drawable.resource 从 Firebase 插入图片?

这是 onBindViewHolder 适配器:(认为您只需要这个?)

  @Override
public void onBindViewHolder(@NonNull ViewHolder ViewHolder, int position){
    Item currentItem = mList.get(position);
    ViewHolder.Cover.setImageResource(currentItem.getCover());
    ViewHolder.Title.setText(currentItem.getTitle());
    ViewHolder.Description.setText(currentItem.getDescription());

这是项目:

public class GameItem {
private int Cover;
private String Title;
private String Description;

public Item(int CoverImage, String TextTitle, String TextDescription) {
    Cover = CoverImage;
    Title = TextTitle;
    Description = TextDescription;
}


public int getCover() {
    return Cover;
}

TLDR:

如何将图像从 Firebase 加载到 ArrayList 的单个元素中? 每个项目都应该有不同的图像。 如果不是,我该如何消除延迟?

谢谢你,真的。

【问题讨论】:

  • 请问为什么要将位图加载到数组中而不是仅仅使用 Glide 将图像加载到封面 ImageViews 中?通过将其加载到数组中,您会浪费大量内存 Glide 将自行处理开始和停止加载图像并节省内存。 Glide 可以处理加载 url 以及资源 id。
  • 我真的不明白 Glide 会如何处理这个问题。 glide 不会改变 ImageView 本身,因此每个项目的每个 Image 都相同吗?因为 ImageView 是 sime,单个元素基于 cardview xml 布局文件,正如您可能已经想象的那样
  • 在您的 onBindViewHolder 调用中Glide.with(viewHolder.Cover).load(currentItem.getCover()).into(ViewHolder.Cover); 每个 ViewHolder 都有一个对与 onCreateViewHolder 关联的不同 imageView 的引用。相信我,它会起作用的。
  • 我试试看告诉你,非常感谢
  • 嘿 Ge3ng,我刚刚尝试了你的建议。我要热烈感谢你,因为它有效。已经搜索了三天,但我无法理解其他解决方案,主要是因为他们没有指定将某些特定代码放在哪里。如果您将其发布为答案,我会将其标记为正确

标签: java android firebase android-glide image-loading


【解决方案1】:

在您的onBindViewHolder 通话中

Glide.with(ViewHolder.Cover).load(currentItem.getCover()).into(ViewHolder.Cover);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-17
    • 2020-01-23
    • 2021-08-17
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    相关资源
    最近更新 更多