0

我是android开发新手,我有一个问题。我尝试在RecyclerView中加载一些图像。传入数据的类型为byte []。Android - 在回收站滑行查看

我的第一个解决方案是将字节[]转换为位图,它工作正常,但位图在存储器中搜索,我得到一个OutOfMemory异常。

第二种解决方案是使用Glide。

Glide.with(mContext)     
       .load(field.getImage()) 
       .into(holder.mImageView); 

但使用此解决方案,我在每个项目中获得相同的图像。 我认为问题出在Glide的缓存中,因为传入的数组是不同的。我尝试用这个代码做解决这个问题:

requestOptions.skipMemoryCache(true); 
requestOptions.diskCacheStrategy(DiskCacheStrategy.NONE); 
Glide.with(mContext) 
       .applyDefaultRequestOptions(requestOptions) 
       .load(field.getImage()) 
       .into(holder.mImageView); 

} 

但它并不能帮助。什么是正确的方法来做到这一点?

回答

1

尝试这种使用setDefaultRequestOptions(requestOptions)

Glide.with(context) 
    .setDefaultRequestOptions(new RequestOptions().placeholder(R.drawable.booked_circle).error(R.drawable.booked_circle)) 
    .load(url) 
    .into(imageView); 
+0

没错。有用。我用applyDefaultRequestOptions(requestOptions)而不是setDefaultRequestOptions(requestOptions) – DanMan

+0

“.setDefaultRequestOptions”我不能使用它。我正在使用科林..这是在这里的概率? –

+0

@charithaamarasinghe use **。apply(requestOptions)** – Prem

0

可以调整图像这样

Glide.with(PhotoGalleryActivity.this) 
            .using(new FirebaseImageLoader()) 
            .load(storageReference) 
            .asBitmap() 
            .into(new SimpleTarget<Bitmap>(520, 520) { 
             @Override 
             public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { 
              holder.img.setImageBitmap(resource); 

             } 
            });