美文网首页
Glide 4解决占位符没有裁剪成圆形的问题

Glide 4解决占位符没有裁剪成圆形的问题

作者: 英勇的骑士_d175 | 来源:发表于2019-08-02 17:24 被阅读0次

废话不说,直接上代码,Kotlin版本

1、圆形图片

var headIv = ImageView()
val options = RequestOptions.circleCropTransform()//圆形图片  
options.error(R.mipmap.ic_logo).placeholder(R.mipmap.ic_logo)//错误图、占位图
val transforms = Glide.with(mContext).load(R.mipmap.ic_logo).apply(RequestOptions().circleCrop())//解决占位图非圆形问题
Glide.with(mContext).load(item!!.user_icon).apply(options).thumbnail(transforms).into(headIv)

2、圆角图片

var headIv = ImageView()
val options = RequestOptions()//圆形图片  
options.transform(GlideRoundTransform(mContext,5))//设置圆角大小
options.error(R.mipmap.ic_logo).placeholder(R.mipmap.ic_logo)//错误图、占位图
Glide.with(mContext).load(item!!.user_icon).apply(options).into(headIv)
  • 附上GlideRoundTransform 类的代码(java)
package com.green.mines.utils;

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 java.security.MessageDigest;

/***

* glide 图片设置圆角

*

* //第一个是上下文,第二个是圆角的弧度

*        RequestOptions myOptions = new RequestOptions()

*                .transform(new GlideRoundTransform(this,30));

*/

public class GlideRoundTransformextends BitmapTransformation {

private final Contextcontext;

    private static float radius =0f;

    public GlideRoundTransform(Context context) {

this(context, 4);

    }

public GlideRoundTransform(Context context, int dp) {

this.context = context;

        this.radius = Resources.getSystem().getDisplayMetrics().density * dp;

    }

@Override

    protected Bitmaptransform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {

return roundCrop(pool, toTransform);

    }

private static BitmaproundCrop(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 StringgetId() {

return getClass().getName() + Math.round(radius);

    }

@Override

    public void updateDiskCacheKey(MessageDigest messageDigest) {

}

}

相关文章

  • Glide 4解决占位符没有裁剪成圆形的问题

    废话不说,直接上代码,Kotlin版本 1、圆形图片 2、圆角图片 附上GlideRoundTransform 类...

  • Glide 占位符、选项、变换

    Glide 占位符Glide 选项Glide 变换 一、占位符 1.1 类型 Glide 允许用户指定三种不同类型...

  • Glide4 使用

    基本使用Glide.with(this).load(url).into(imageView); 使用占位符占位符是...

  • 2020-01-03 开发日常

    1. Glide在加载图片的过程中遇到了圆形的图片第一次加载的时候只显示占位图片的问题,解决办法 去除Glide自...

  • Glide基础使用

    Glide依赖配置: 1.占位符配置 占位符总共有3种:placeholer、error、fallback pla...

  • Android 图片加载库 Glide的基本用法

    开始 将Glide引入我们的项目 加载图片 基本用法 占位符 普通占位符 错误显示 缓存 取消缓存 指定图片格式 ...

  • 莹莹

    占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符...

  • 莹莹

    占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符...

  • 工欲善其事,必先利其器系列之 UITextView+Catego

    UITextView 也是较长用的控件之一,唯一问题就是没有占位符本文介绍:1、UITextView 添加占位符...

  • 及时止损哪有那么容易

    占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符 晚上清理微博时,发现了我以前发的微博 心情如同标题 ...

网友评论

      本文标题:Glide 4解决占位符没有裁剪成圆形的问题

      本文链接:https://www.haomeiwen.com/subject/laqrdctx.html