日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

com.facebook.imagepipeline.bitmaps.TooManyBitmapsException Fresco使用过程中遇到的坑

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 com.facebook.imagepipeline.bitmaps.TooManyBitmapsException Fresco使用过程中遇到的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 使用Drawee來顯示圖片時,發現圖片顯示不出來,根據打的log發現?"com.facebook.imagepipeline.bitmaps.TooManyBitmapsException"的異常。

開始時根據異常的意思猜測可能打開的圖片太多導致的,于是設置fresco的最大緩存大小。

private static int MAX_MEM = 30* ByteConstants.MB; private ImagePipelineConfig getConfigureCaches(Context context) {final MemoryCacheParams bitmapCacheParams = new MemoryCacheParams(MAX_MEM,// 內存緩存中總圖片的最大大小,以字節為單位。 Integer.MAX_VALUE,// 內存緩存中圖片的最大數量。 MAX_MEM,// 內存緩存中準備清除但尚未被刪除的總圖片的最大大小,以字節為單位。 Integer.MAX_VALUE,// 內存緩存中準備清除的總圖片的最大數量。 Integer.MAX_VALUE);// 內存緩存中單個圖片的最大大小。 Supplier<MemoryCacheParams> mSupplierMemoryCacheParams = new Supplier<MemoryCacheParams>() {@Override public MemoryCacheParams get() {return bitmapCacheParams; }}; ImagePipelineConfig.Builder builder = ImagePipelineConfig.newBuilder(context); builder.setBitmapMemoryCacheParamsSupplier(mSupplierMemoryCacheParams); return builder.build(); } Fresco.initialize(this,getConfigureCaches(this));

然而,并沒有解決問題??磥磉@并不是由于緩存了太多圖片引起的。百思不得其解之下google了下找的了一個方法,地址如下:

? ? ? ?https://github.com/facebook/fresco/issues/213

? ? ? ? 其中說到了可能是fresco在加載圖片時重新定義了大小引起的。只要的當前類中初始化Fresco時添加下邊的代碼即可。(注意是在當前activity中,不然在Application中可能不起作用)

? ??

ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this).setDownsampleEnabled(true).build(); Fresco.initialize(this,config);

? ?問題解決



? ? ?

總結

以上是生活随笔為你收集整理的com.facebook.imagepipeline.bitmaps.TooManyBitmapsException Fresco使用过程中遇到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。