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); 

             } 
            });