圖片載入利器Picasso 解析
阿新 • • 發佈:2019-02-03
先用用
//原圖
Picasso.with(this).load(imgWebSite).into(imageView);
//其根據resize的比例關係來改變原圖,雖然原圖完整的在resize的範圍中顯示了,但圖形已經失真了
Picasso.with(this).load(imgWebSite).resize(200, 200).networkPolicy(NetworkPolicy.OFFLINE).error(R.drawable.ic_launcher).into(imageView2);
//centerCrop 它保證將resize的範圍給填充滿,是按照原圖的比率來壓縮的,超出的部分則裁剪掉,裁剪是中心對其只裁剪邊緣部分,
Picasso.with(this).load(imgWebSite).resize(200, 200).centerCrop().into(imageView4);
//centerInside 的意義在於 它不對圖片進行裁剪,而是在原圖的尺寸比例之下壓縮圖片,使得在resize要求的尺寸範圍下能夠完整的顯示圖片。那麼實際下顯示的圖片會等於或小於resize的尺寸。
Picasso.with(this).load(imgWebSite).resize(200, 200).centerInside().into(imageView5);
/**
* placeholder 就是正在下載圖片的過程中顯示的內容。
*/
Picasso.with(this).load(errImgWebSite).placeholder(R.drawable.idx_logo).error(R.drawable.ic_launcher).into(imageView3);
/**
* 策略:
* NO_STORE 不將結果存入Cache中,也意味著每次都需要重新從網路上獲取。
* NO_CACHE 強制從網路上獲取,不去檢查快取裡有沒有。
* OFFLINE 只從cache中去找,即使網路ok,也不從網路上獲取。
*/
Picasso.with(this).load(imgWebSite2).resize(200, 200).centerCrop().networkPolicy(NetworkPolicy.OFFLINE).error(R.drawable.ic_launcher).into(imageView6);
一些問題
原始碼解析
先佔個坑