android Glide3.7 圆角图片
16lz
2021-01-26
导入
implementation 'com.github.bumptech.glide:glide:3.7.0'
样式类
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;public class GlideRoundTransform extends BitmapTransformation { private static float radius = 0f; /** * 构造函数 默认圆角半径 4dp * * @param context Context */ public GlideRoundTransform(Context context) { this(context, 4); } /** * 构造函数 * * @param context Context * @param dp 圆角半径 */ public GlideRoundTransform(Context context, int dp) { super(context); 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.with(context) .load(url) .transform(new CenterCrop(context),new GlideRoundTransform(context)) .diskCacheStrategy(DiskCacheStrategy.ALL) .placeholder(R.mipmap.ic_launcher) .dontAnimate() .crossFade() .into(ImageView);
更多相关文章
- android Junit demo
- 《Android系统学习》之JAVA与C混合编程——JNI
- androidx.lifecycle.Transformations函数分析
- Android(安卓)camera: Metadata\Image从HAL到framework
- Android(安卓)Audio代码分析14 - testPlaybackHeadPositionIncre
- Android端实现图标带提示数字功能
- Android如何调用webservice 以及错误解决汇总
- Android(安卓)ListView滑动回弹——overScrollBy
- org.codehaus.jackson.map.JsonMappingException: No suitable c