Android Glide自定義圓角處理

?平時(shí)我們開發(fā)中會(huì)遇到UI出的帶圓角的圖片心傀,平時(shí)做的圖片緩存加載框架基本都是 Glide猜扮,?那么我們就在Glide上來說一說實(shí)現(xiàn)方法。

? ? ? Glide是谷歌為我們推薦的一個(gè)圖片加載庫夜焦。為什么要選擇使用Glide呢捞稿?

1、代碼有人維護(hù)荞胡,不至于出現(xiàn)問題妈踊,項(xiàng)目組都搞不定的時(shí)候問題無法解決。(ImageLoader已沒人維護(hù)了)

2硝训、代碼簡潔响委,可讀性很好。(Fresco是一個(gè)非常優(yōu)秀的庫窖梁,但是配置稍顯麻煩赘风,同時(shí)代碼風(fēng)格讀起來有些生疏)

3、功能強(qiáng)大(400多k的包纵刘,包含很多功能邀窃,例如:像加載Gif圖片就是Picasso做不到的)

? ? ? ? 第一步?先是添加依賴:

? ? ?//圖片

? ? implementation 'com.github.bumptech.glide:glide:4.5.0'


? ?(切記一定要申請權(quán)限? 往往最簡單的問題?總是會(huì)疏忽)

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.INTERNET" />

? ? 然后我們重寫一個(gè)? ?(GlideRoundTransform)


/**

* Created by ShinnyYang on 2018/6/6.

* 自定義glide的圓角處理部分

*/

public class GlideRoundTransform extends BitmapTransformation {

? ? private float radius = 0f;

? ? public GlideRoundTransform(Context context) {

? ? ? ? this(context, 4);

? ? }

? ? public GlideRoundTransform(Context context, int dp) {

? ? ? ? this.radius = Resources.getSystem().getDisplayMetrics().density * dp;

? ? }

? ? @Override

? ? protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {

? ? ? ? Bitmap bitmap = TransformationUtils.centerCrop(pool, toTransform, outWidth, outHeight);

? ? ? ? return roundCrop(pool, bitmap);

? ? }

? ? private Bitmap roundCrop(BitmapPool pool, Bitmap source) {

? ? ? ? if (source == null) return null;

? ? ? ? Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);

? ? ? ? if (result == null) {

? ? ? ? ? ? result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);

? ? ? ? }

? ? ? ? Canvas canvas = new Canvas(result);

? ? ? ? Paint paint = new Paint();

? ? ? ? paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));

? ? ? ? paint.setAntiAlias(true);

? ? ? ? RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());

? ? ? ? canvas.drawRoundRect(rectF, radius, radius, paint);

? ? ? ? return result;

? ? }

? ? public String getId() {

? ? ? ? return getClass().getName() + Math.round(radius);

? ? }

? ? @Override

? ? public void updateDiskCacheKey(MessageDigest messageDigest) {

? ? }

? 代碼中使用

Glide.with(mContext)

? ? ? ? .load(t.getBody().getGoods().getPic_url())

? ? ? ? .apply(new RequestOptionsStrategy()

? ? ? ? ? ? ? ? .transform(new GlideRoundTransform(mContext, 5)))

? ? ? ? .into(ivHeadPic);


附加?

/**

* glide RequestOptions屬性

* Created by ${ShinnyYang} on 2019/4/11.

*/

public class RequestOptionsStrategy extends RequestOptions {

? ? @SuppressLint("CheckResult")

? ? public RequestOptionsStrategy() {

? ? ? ? this.error(R.color.greed)

? ? ? ? ? ? ? ? .placeholder(R.color.greed);

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市假哎,隨后出現(xiàn)的幾起案子瞬捕,更是在濱河造成了極大的恐慌,老刑警劉巖舵抹,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肪虎,死亡現(xiàn)場離奇詭異,居然都是意外死亡惧蛹,警方通過查閱死者的電腦和手機(jī)扇救,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來香嗓,“玉大人迅腔,你說我怎么就攤上這事】坑椋” “怎么了沧烈?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長像云。 經(jīng)常有香客問我锌雀,道長,這世上最難降的妖魔是什么迅诬? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任汤锨,我火速辦了婚禮,結(jié)果婚禮上百框,老公的妹妹穿的比我還像新娘闲礼。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布柬泽。 她就那樣靜靜地躺著慎菲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锨并。 梳的紋絲不亂的頭發(fā)上露该,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天,我揣著相機(jī)與錄音第煮,去河邊找鬼解幼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛包警,可吹牛的內(nèi)容都是我干的撵摆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼害晦,長吁一口氣:“原來是場噩夢啊……” “哼特铝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起壹瘟,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤鲫剿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后稻轨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灵莲,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年殴俱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了笆呆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粱挡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俄精,到底是詐尸還是另有隱情询筏,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布竖慧,位于F島的核電站嫌套,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏圾旨。R本人自食惡果不足惜踱讨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砍的。 院中可真熱鬧痹筛,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滋早,卻和暖如春榄审,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杆麸。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工搁进, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昔头。 一個(gè)月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓饼问,卻偏偏與公主長得像,于是被迫代替她去往敵國和親减细。 傳聞我的和親對象是個(gè)殘疾皇子匆瓜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354