如何在RecyclerView上以滑动方式重用缓存的base 64映像

时间:2018-08-01 18:42:37

标签: android android-recyclerview android-glide

我正在使用GlideonBindViewHolder上加载base 64图像。但是,一旦加载了图像,我便将其从内存中删除。对于列表中的每个对象保留它会导致应用程序崩溃。当然,这将导致视图回收时出现问题,因为图像源在第二次访问时为空字符串。

使用Glide

加载基本64位映像
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {

    CardDetails card = cardsList.get(position);
    if (card != null && card.getImage() != null) {
        holder.progressBar.setVisibility(View.GONE);
        GlideApp.with(mContext)
                .load(card.getImageBase64())
                .signature(new ObjectKey(card.getCardKey()))
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .override(imageScaledWidth, Target.SIZE_ORIGINAL)
                .into(holder.imageViewCard);

        // removing the base 64 image string after its loaded to avoid OOM
        card.setImage("");
        card.setImageLoaded(true);
    }

}

是否有一种方法可以从缓存中重新加载图像,而不是依赖于object字段中的数据?我无法通过URL加载图片,因为我正在安全的后端上调用发布请求。

0 个答案:

没有答案