国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Fresco 使用要點

2019-11-09 14:43:09
字體:
來源:轉載
供稿:網友

研究Fresco有段時間了,在內存使用上的確要比UIL的好挺多,但同時Fresco的使用也些許復雜,還有很多陷阱。

除了參看官方文檔外,還需要注意一下問題:

一、配置

1、ImagePipelineConfig 要設置 setDownsampleEnabled(true),以打開對png等圖片的自動縮放特性(縮放必須要設置ResizeOptions);

      setResizeAndRotateEnabledForNetwork(),已對網絡圖也能進行resize處理,減少內存開銷;

      沒有png等透明圖片的顯示要求,setBitmapsConfig設置為 RGB_565,減少內存開銷;

2、如果有瀏覽本地圖片的,并且一屏上顯示多張(> 9),要將PoolFactory的flexByteArrayPoolParams的PoolParam的 maxSizeHardCap值設為 8MB以上。

      默認是每個讀取線程只有4MB的byte緩存池,但現在很多圖片的文件大小都超過8MB,在同時加載多種圖片時,容易出現緩存池大小不夠,導致加載失敗;

二、ImageRequest

1、加載文件路徑不要直接直接使用 Uri.parse(),而要使用 Uri.fromFIle()。parse不會轉義文件路徑的unicode字符,導致加載失敗;

2、ResizeOptions一定盡量要設置,并且是ImageView所顯示的大小,這樣可以盡可能的縮減加載的圖像尺寸,節約內存;

3、加載到BitmapCache的圖片都是帶Resize的,如果兩處加載同一個Uri,但ResizeOptions不同的話,那也是當做兩張圖片;

4、GIF圖閃動:Fresco是不在內存中緩存GIF圖的,每次顯示都是重新解碼,閃動可以設置ImageDecodeOption中的setDecodePReviewFrame(true),并不設置placeholder的圖片;

三、緩存

1、直接獲得內存緩存的Bitmap:

[java] view plain copy 在CODE上查看代碼片DataSource<CloseableReference<CloseableImage>> dataSource =          Fresco.getImagePipeline().fetchImageFromBitmapCache(request, null);  CloseableReference<CloseableImage> imageReference = null;  try {      imageReference = dataSource.getResult();      if (imageReference != null) {          CloseableImage image = imageReference.get();          // do something on this      }  } finally {      dataSource.close();      CloseableReference.closeSafely(imageReference);  }  

四、預加載

使用預加載時,要預加載到內存并解碼的,要注意ResizeOptions,和照片旋轉照成的長寬對調。

1、預緩存到本地文件,但不加載到內存,自動忽略ResizeOptions:

[java] view%20plain copy Fresco.getImagePipeline()                  .prefetchToDiskCache(imageRequest, null)  

2、預加載到內存并解碼(不需要立即拿到結果的),受ResizeOptions影響:

[java] view%20plain copy Fresco.getImagePipeline()                  .prefetchToBitmapCache(imageRequest, null)  3、加載一張圖片,并緩存到內存,返回解碼的結果,受ResizeOptions影響:

[java] view%20plain copy 派生到我的代碼片Fresco.getImagePipeline()                  .fetchDecodedImage(imageRequest, null)  但要注意,返回的DataSource是不能直接拿到結果,需要subscribe DataSource

4、


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南靖县| 阳山县| 平和县| 岢岚县| 泊头市| 邮箱| 平阴县| 高邮市| 宜城市| 神农架林区| 永靖县| 遵化市| 岗巴县| 方山县| 南澳县| 阿拉尔市| 乡城县| 奉新县| 许昌市| 田阳县| 金昌市| 礼泉县| 中山市| 普陀区| 丰都县| 南昌市| 巴彦县| 明星| 宣汉县| 连云港市| 忻州市| 吉首市| 时尚| 定陶县| 日喀则市| 宝清县| 高清| 巴东县| 沈阳市| 车致| 平泉县|