? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Fresco的使用小結(jié)(一)
1. Fresco的由來:Facebook?出品的一個強大的圖片加載組件
2. Fresco優(yōu)缺點:
?Facebook 就另辟蹊徑晕讲,既然沒法在 Java 層處理鸟妙,我們就在更底層的 Native 堆做手腳屠升。于是 ? ? ?Fresco 將圖片放到一個特別的內(nèi)存區(qū)域叫 Ashmem 區(qū),就是屬于 Native 堆采章,圖片將不再占用 App ?的內(nèi)存,Java 層對此無能為力沫勿,這里是屬于 C++ 的地盤除盏,所以能大大的減少 OOM薛窥。
總結(jié)
? 優(yōu)點:支持圖像漸進式呈現(xiàn)胖烛,大公司出品,后期維護有保障
? ? 缺點:框架體積較大诅迷,3M左右會增大apk的大信宸;操作方式不是特別簡單罢杉,有一定學(xué)習(xí)成本
? ? 特點:有兩級內(nèi)存一級文件的緩存機制趟畏,并且有自己特別的內(nèi)存區(qū)域來處理緩存,避免oom
Fresco 如何集成:
github 地址:https://github.com/facebook/fresco
在app build.gradle 中配置:implementation'com.facebook.fresco:fresco:1.9.0'
3滩租、基本使用:
//布局:
XML屬性意義
fadeDuration ? 淡入淡出動畫持續(xù)時間(單位:毫秒ms)
actualImageScaleType ? 實際圖像的縮放類型
placeholderImage ? 占位圖
placeholderImageScaleType ? 占位圖的縮放類型
progressBarImage ? 進度圖
progressBarImageScaleType ?進度圖的縮放類型
progressBarAutoRotateInterval ?進度圖自動旋轉(zhuǎn)間隔時間(單位:毫秒ms)
failureImage ?失敗圖
failureImageScaleType ?失敗圖的縮放類型
retryImage ? 重試圖
retryImageScaleType ?重試圖的縮放類型
backgroundImage ? 背景圖
overlayImage ? 疊加圖
pressedStateOverlayImage ?按壓狀態(tài)下所顯示的疊加圖
roundAsCircle ? 設(shè)置為圓形圖
roundedCornerRadius ? 圓角半徑
roundTopLeft ?左上角是否為圓角
roundTopRight ? 右上角是否為圓角
roundBottomLeft ?左下角是否為圓角
roundBottomRight ?右下角是否為圓角
roundingBorderWidth ?圓形或者圓角圖邊框的寬度
roundingBorderColor ? 圓形或者圓角圖邊框的顏色
roundWithOverlayColor ? 圓形或者圓角圖底下的疊加顏色(只能設(shè)置顏色)
viewAspectRatio ? 控件縱橫比
//代碼中:Uri uri = Uri.parse(urlStr);
fresco_test.setImageURI(uri);//之后的一切全交給fresco就行了
URIs的使用:
4.Fresco獲取Bitmap代碼:
http://www.reibang.com/p/ec4961133192