關于Android 的 Fresco的圖片加載,二次采樣,色彩矩陣的小總結(隨堂筆記,純文字)

這幾天主要學習了Fresco的圖片加載,二次采樣,色彩矩陣。
Fresco:是Facebook提供的開源圖片加載庫,它能夠從網(wǎng)絡,本地存儲和Android資源文件中加載圖片。
二次采樣是為了讓圖片減少內(nèi)存占用,在加載到內(nèi)存中會進行壓縮,減少它占用的內(nèi)存,
而矩陣:是可以圖形變換,變換形狀。
色彩矩陣:是和PS的遮罩差不多,可以設置一些圖片特效。
在網(wǎng)上最常用的加載框架的來說,Glide是占用最少的。
先說說Fresco是如何使用的,
首先把Fresco的依賴先加載上,
新new個類,設置一下,然后再到配置清單里面注冊一下。
之后在xml里面創(chuàng)建組件SimpleDraweeView
在MainActivity里面正常調用一下,用setImageURI("網(wǎng)址")設置一下,就可以正常使用了。
有的時候,網(wǎng)絡不好就需要占位圖來確定一下。
設置占位圖的方法是這樣的,在xml中的SimpleDraweeView里面寫一個failureImage屬性設置一下,
就可以設置加載失敗時顯示的圖。
在Fresco 與Glide相比,F(xiàn)resco 可以更容易對網(wǎng)絡圖片進行設置,就比如Fresco 組件的fadeDuration屬性可以設置
圖片淡出時間,而Glide就只能在圖片得到后,設置動畫進行顯示。
Fresco 組件的roundAsCircle屬性可以設置是否是圓形圖片,
Fresco 組件的roundingBorderColor屬性可以設置圖片描邊的顏色,
Fresco 組件的roundingBorderWidth可以設置描邊的寬度等等。
功能比Glide要多,只是現(xiàn)在用的公司比較少了。
再說一下二次采樣,
它的第一步創(chuàng)建一個ImageView并調用,需要先將這個數(shù)據(jù)變成bitmp類型,
所以第二步創(chuàng)建BitmapFactory.decodeStream( getResources(),圖片的id)將數(shù)據(jù)轉換成bitmap
然后再從bitmp類型變成圖片占用大小,就要在第三步創(chuàng)建BitmapFactory.decodeByteArray(),就可以獲取到圖片所占用的內(nèi)存大小。
其中BitmapFactory.decodeFile()還可以把字節(jié)數(shù)組變?yōu)閳D片,創(chuàng)建不創(chuàng)建看需求。
還有一點,由于網(wǎng)絡圖片太大,正常點的手機就這樣直接加載20張圖片大概就會崩潰,這時候就需要進行壓縮處理,二次采樣就可以做到這一點,
先創(chuàng)建BitmapFactory.decodeStream( getResources(),圖片的id)將圖片轉換成bitmap,options);
new一個 BitmapFactory.Options ,讓BitmapFactory.decodeStream來調用,
在BitmapFactory.Options 再調用 options.outWidth和options.outHeight獲取圖片的寬高,
就可以設置下一步操作了
接著用BitmapFactory.Options調用inJustDecodeBounds 把它設置成false,
再用BitmapFactory.Options調用inSamlpleSize
將inSamlpleSize 設置一下 ,比如 設置為2,圖片就會變成原來的四分之一的的大小,
二次采樣就完成了。
ColorMatrix顏色變換,
主要是通過RGBA的方法來調整的。
Matrix圖片變換,
對一個圖片進行變換的處理。
ColorMatrix顏色變換和Matrix圖片變換,這兩個功能,正常開發(fā)很少用就是了,主要的面試要考,在網(wǎng)上了解一下就行。