glide 4.0 之后 和圆角裁剪CenterCrop冲突
package 包名;import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF;import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; import com.bumptech.glide.load.resource.bitmap.TransformationUtils;import java.security.MessageDigest;public class GlideRoundTransform extends BitmapTransformation {// private static float radius = 0f; // // public GlideRoundTransform(Context context) { // this(context, 4); // } // // public GlideRoundTransform(Context context, int dp) { // super(context); // this.radius = Resources.getSystem().getDisplayMetrics().density * dp; // } // // @Override // protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { // return roundCrop(pool, toTransform); // } // // 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; // } // // @Override // public String getId() { // return getClass().getName() + Math.round(radius); // }//----------上面的是glide 4.0 之前的处理方式的//---------- 下面是 glide 4.0 之后的处理方式private static float radius = 0f;public GlideRoundTransform(Context context) {this(context, 4);}public GlideRoundTransform(Context context, int dp) { // super(context);this.radius = Resources.getSystem().getDisplayMetrics().density * dp;}@Overrideprotected 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);}@Overridepublic void updateDiskCacheKey(MessageDigest messageDigest) {} }
glide 4.0 之后 和圆角裁剪CenterCrop冲突相关推荐
- Glide 4.0 相比 Glide 3.0 及使用详解
1.变化 单独列出的更改太多,但这里有一些亮点: 新的文档,用户可以通过提交请求到Glide's gh-pages分支贡献. 用户可以添加新类型或自定义选项集来轻松地自定义Glide流畅的API. 大 ...
- Android 7.0下拍照和裁剪图片
Android 7.0下拍照和裁剪图片 最近,公司的APP集中爆发了头像上传中拍照或照片裁剪的bug,让我才意识到及时学习Android新特性是多么重要,一个过去式的APP是无法一直满足日益变化的新需 ...
- lg g6 android 9,LG G6再无秘密:Android 7.0+18:9圆角屏
原标题:LG G6再无秘密:Android 7.0+18:9圆角屏 LG G6这几天是比较安静了,因为它也实在是没有什么值得继续爆料的了,根据此前消息,LG G6将在2月26日开幕的MWC大会首日正式 ...
- Glide4.7加载图片RoundedCorners跟CenterCrop冲突问题解决
Glide加载图片时需要设置CenterCrop跟RoundedCorners时需要用到RequestOptions的transforms方法 单个设置时后面的设置的会覆盖前面设置的 如: new R ...
- android 缺半圆形头像,Android 自定义Glide实现圆形头像效果(圆角,正常,黑白,圆形效果)...
/** * Glide 图片加载工具类 */ /** * diskCacheStrategy参数补充 * * DiskCacheStrategy.NONE 表示不缓存任何内容. * * DiskCac ...
- 手机裁剪圆角图片_iOS高效图片圆角裁剪方法
自定义裁剪算法 - (UIImage *)dealImage:(UIImage *)img cornerRadius:(CGFloat)c { // 1.CGDataProviderRef 把 CGI ...
- 图文理解 Spark 3.0 的动态分区裁剪优化
Spark 3.0 为我们带来了许多令人期待的特性.动态分区裁剪(dynamic partition pruning)就是其中之一.本文将通过图文的形式来带大家理解什么是动态分区裁剪. Spark 中 ...
- creo 6.0—11:圆角、倒角绘制,文本(文字)创建
11 creo圆角.倒角绘制,文本(文字)创建 1.圆角绘制: 首先绘制一个矩形,对该矩形进行圆角的绘制: 圆角有以下几种方式形成 首先,最基本的方式为: 1.两边选定式--圆形 按钮 分别 左键点击 ...
- android Glide 4.0图片加载失败
项目中查看大图,并可以拖拽缩放,但是在加载图片等时候有些图片不能加载出来,报了一个错误: class com.bumptech.glide.load.engine.GlideException: Fa ...
- Glide加载图片设置圆角和占位图片(加载失败)
public static RequestOptions getRequestOptions() {RequestOptions mRequestOptions = RequestOptions.ci ...
最新文章
- Linux系统命令sort详解
- python读取.so_Python入门-编译安装Python3教程
- hihocoder #1136 : Professor Q's Software
- Android_(菜单)选项菜单
- 总结从linux - windows 上(GCC与MSVC 2015) 移植C或者C++代码时候遇到的编译和链接问题
- “桌面日历”记录的事件居然是看某某视频……
- Python高能小技巧:了解bytes与str的区别
- 软件详细设计说明书_软件测试的基本理论 笔记
- 只属于你我的共同记忆
- java.lang.ClassFormatError
- CentOS_mini下安装docker 之 安装docker CE
- ubuntu 12.04 下安装 PyTesser 进行OCR识别 - 从波 - 博客园
- php书店网站模板源代码_网上书店整套html模板
- Cadence PSpice 仿真1: 三极管传输特性曲线直流仿真图文教程
- 学习笔记-spo0lsv病毒分析
- 使用 Python 在 2 秒内评估国际象棋位置
- 用ECS做HexMap:高地与阶梯
- java中文乱码终极解决方案
- js利用正则验证手机号是否合法
- 买低配车,更保值?!坊间有一句戏言:买车都要买低配
热门文章
- 用一个键盘和鼠标控制两台双显示器计算机的最佳方法是什么?
- 若依框架前端Vue项目分析实战
- EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能
- hadoop菜鸟教程 Hadoop学习资料(云计算学习电子书)
- idea设置护眼主题
- crmeb java单商户源码java二开文档部署文档H5商城部署文档【5】
- error:“Component name “Home“ should always be multi-word vue/multi-word-component-names“
- go程序设计语言学习 popCount
- 黑苹果intel网卡驱动方法
- 3dm下载的都是linux游戏,3DM的游戏怎么下载和安装(没智商的小白用户)