public class GlideRoundTransform extends BitmapTransformation {
private static float radius = 0f;
private static final String ID = "com.bumptech.glide.load.resource.bitmap.FillSpace";
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
public GlideRoundTransform(Context context) {
this(4);
}
public GlideRoundTransform(int dp) {
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 static 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 boolean equals(Object o) {
if (o instanceof GlideRoundTransform) {
GlideRoundTransform other = (GlideRoundTransform) o;
return radius == other.radius;
}
return false;
}
@Override
public int hashCode() {
return Util.hashCode(ID.hashCode(),
Util.hashCode(radius));
}
@Override
public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
byte[] radiusData = ByteBuffer.allocate(4).putFloat(radius).array();
messageDigest.update(radiusData);
}
}
Glide 加載圓角寨典,避免閃爍
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓣赂,“玉大人榆骚,你說我怎么就攤上這事』图” “怎么了寨躁?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長牙勘。 經(jīng)常有香客問我职恳,道長所禀,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任放钦,我火速辦了婚禮色徘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘操禀。我一直安慰自己褂策,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布颓屑。 她就那樣靜靜地躺著斤寂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揪惦。 梳的紋絲不亂的頭發(fā)上遍搞,一...
- 文/蒼蘭香墨 我猛地睜開眼措左,長吁一口氣:“原來是場噩夢啊……” “哼依痊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起怎披,我...
- 正文 年R本政府宣布稍坯,位于F島的核電站酬荞,受9級特大地震影響搓劫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜混巧,卻給世界環(huán)境...
- 文/蒙蒙 一枪向、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咧党,春花似錦秘蛔、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛙埂,卻和暖如春倦畅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箱残。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 網(wǎng)上很多方法說是recycleView的動畫或是Glide的設(shè)置取消加載變換動畫.dontAnimate(),試了...
- 直接上代碼: 看注解 @SuppressLint("AppCompatCustomView") public cl...
- 睜開眼又是美好的一天臊诊,對于即將開始寫代碼的我鸽粉,心情是這樣滴 戴上耳機聽著自己喜歡的五月天的歌,寫著讓我感覺到安全的...
- Glide圖片每次更換,會有閃爍現(xiàn)象,設(shè)置一個占位圖.placeHolder()即可抓艳,簡單粗暴触机。
- 可能這個問題很常見,大家也有不少人解決了玷或,大部分人用的方法一和二如果你還沒解決的話儡首,那么看這篇文章就對了使用Rec...