Glide控制显示4个角
自定义Glide
package com.sibei.lumbering.utils; 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;import androidx.annotation.NonNull;public class GlideRoundTransform extends BitmapTransformation {private static float radius = 0f;public GlideRoundTransform() {this(4);}public GlideRoundTransform(int dp) {super();this.radius = Resources.getSystem().getDisplayMetrics().density * dp;}@Overrideprotected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {//变换的时候裁切Bitmap bitmap = TransformationUtils.centerCrop(pool, toTransform, outWidth, outHeight);return roundCrop(pool, bitmap);}@Overridepublic void updateDiskCacheKey(MessageDigest messageDigest) {}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);RectF rectRound = new RectF(0f, 100f, source.getWidth(), source.getHeight());canvas.drawRect(rectRound, paint);return result;} }
GlideUtil
public class GlideUtils {private Context context;public GlideUtils(Context context){this.context = context;}public void load(String url, ImageView iv){Glide.with(context).asBitmap().load(url).error(R.drawable.no_banner).into(iv);}public void load(int url, ImageView iv){Glide.with(context).asBitmap().load(url).error(R.drawable.no_banner).into(iv);}public void load(Object url, ImageView iv){Glide.with(context).asBitmap().load(url).error(R.drawable.no_banner).into(iv);}public void loadCire(Object url, ImageView iv){//设置图片大小RoundedCorners roundedCorners = new RoundedCorners(15);//通过RequestOptions扩展功能,RequestOptions options = RequestOptions.bitmapTransform(roundedCorners);Glide.with(context).asBitmap().load(url).error(R.drawable.no_banner).apply(options).into(iv);}public static RequestBuilder<Drawable> GlideWithPlaceHolder(Context context, Object object,int radius) {return Glide.with(context).load(object).diskCacheStrategy(DiskCacheStrategy.RESOURCE).apply(new RequestOptions().placeholder(R.drawable.no_banner).dontAnimate().transform(new GlideRoundTransform(radius)));}
Glide控制显示4个角相关推荐
- Glide控制显示图片上方2个圆角(或4个都是圆角)
自定义Glide package com.wintec.huashang.ui;import android.content.res.Resources; import android.graphic ...
- html设置文字超过字数_html文本控制显示字数超出用省略号的方法
html文本控制显示字数超出的方法怎么解决?也就是文字溢出控制显示字数,table文字溢出控制td显示字数 看到标题你一定很轻易就会想到截断文字加省略号"..."的做法.哈哈,就是 ...
- element el-popover 使用v-if 控制显示/隐藏,当条件变化时,里面有部分内容无法显示
先上效果图: 贴上我的代码: <span v-if="!isBin" class="chat-btn"><el-popoverv-if=&qu ...
- element 点击控制expend的显示隐藏_四、ArcGIS Runtime SDK for iOS 100.X教程系列之图层控制显示隐藏...
一个图层服务上多个图层时,结合服务的链接地址访问查看详细信息进行代码编写会更方便,形如以下这个arcgis服务: http://arcgis.wuhanrt.cn:6080/arcgis/rest/s ...
- vue实现部分页面导入底部 vue配置公用头部、底部,可控制显示隐藏
vue实现部分页面导入底部 vue配置公用头部.底部,可控制显示隐藏 在app.vue文件里引入公共的header 和 footer header 和 footer 默认显示,例如某个页面不需要显示h ...
- el-tooltip的使用(根据条件控制显示)
el-tooltip根据条件控制显示 一.列表型 代码如下: <template><div><ul><li v-for="(item, index) ...
- Vue el-table-column根据行数据添加button和修改对应数据and控制显示条件
插槽详解理解 行内添加button修改某行数据 表格代码 <el-table-column label="操作"><template slot-scope=&qu ...
- 毕业设计 —— 基于STM32手势控制显示系统的设计
目录 一.前言 二.项目背景及资源分享 三.项目简介 1.项目名称 2.系统框架 3.功能简介 4.控制核心 5.最小系统: 6.外围模块: 四.相关设计原理及框图 1.系统设计的原理 2.手势识别原 ...
- FPGA实现图像任意位置显示,串口协议控制显示位置,提供工程源码和技术支持
目录 1.图像任意位置显示理论基础 2.设计思路和架构 3.OV5640图像采集 4.图像DDR3三帧缓存 5.图像任意位置输出显示 6.串口协议控制显示位置 7.vivado工程介绍 8.上板调试验 ...
最新文章
- Java常用垃圾收集器
- 【直播讲座】用友摩天联合光环国际,听国学学项目管理
- 禁用viewstate怎么还保存状态?
- EF4.1中诡异的GUID为空问题
- Linux 脚本、 正则表达式 等
- 演练 模拟银行账户业务
- python十大实例_Python练习实例100例(从简入难)96-100
- PageAdmin建站系统模板制作教程1:Razor简介
- mysql事件的使用-开启与关闭事件
- DFS HDOJ 2181 哈密顿绕行世界问题
- 转 Linux查看文件编码格式及文件编码转换
- /proc/config.gz 是什么
- 2020移动apn接入点哪个快_设置APN教程
- java websocket广播_使用 Spring 对 Websocket 进行简单的消息广播和单播
- 使用Jquery完成动态表格的功能
- 科技百咖 | 神州云动CEO孙满弟:精细化产品与服务是中国CRM发展的根本
- 2021珠海数据开放创新应用大赛今日启动 征集创意创新应用 争夺数据最强大脑
- android okhttp get 请求带参数
- 消防器材RFID固定资产管理系统
- WebSocket是什么?为什么能持久连接?