解决Glide 4.8.0 圆角与CenterCrop 的冲突问题
1. Glide 4.8.0版本
RoundedCorners roundedCorners = new RoundedCorners(SysUtil.dpTopx(5));
RequestOptions options = new RequestOptions()
??? .diskCacheStrategy(DiskCacheStrategy.DATA)
??? .bitmapTransform(roundedCorners)
??? .centerCrop();
Glide.with(mContext)
??? .load(bean.content.backimg)
??? .apply(options)
??? .into(ivBg);
以上方式圓角是沒有效果的;
正確方式如下:
//設置圖片圓角角度
RoundedCorners roundedCorners = new RoundedCorners(SysUtil.dpTopx(5));
//解決CenterCrop與圓角沖突 導致圓角失效問題
MultiTransformation multiTransformation = new MultiTransformation<>(new CenterCrop(), roundedCorners);
int with = SysUtil.getScreenWidth() - 30;
int height = with / 33 * 13;
//通過RequestOptions擴展功能
RequestOptions options = new RequestOptions()
??? .diskCacheStrategy(DiskCacheStrategy.DATA)
??? .bitmapTransform(multiTransformation)
??? .override(with, height);
Glide.with(mContext)
??? .load(bean.content.backimg)
??? .apply(options)
??? .into(ivBg);
2. Glide 4.9.0版本 修復了以上問題,代碼更簡潔一些
int corner = SysUtil.dpTopx(5); Glide.with(getActivity()).load(bean.backimg).diskCacheStrategy(DiskCacheStrategy.DATA).transform(new CenterCrop(), new RoundedCorners(corner)).into(holder.ivBg);?
總結
以上是生活随笔為你收集整理的解决Glide 4.8.0 圆角与CenterCrop 的冲突问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PS教程第二十四课:魔法棒
- 下一篇: [html] 请使用canvas画一个