Glide使用加圆角处理

页面上会有一些细节处理,比如说图片的圆角处理
这里使用Glide自带的圆角处理的方法来实现
例如:

 RoundedCornersTransform transform = new RoundedCornersTransform(this, 30);
 transform.setNeedCorner(true, true, true, true);
 RequestOptions options = new 
 RequestOptions().placeholder(R.color.page3_start_color).transform(transform);

 GlideApp.with(this).asBitmap()
                .load(R.mipmap.bg_monkey_king)
                .placeholder(R.mipmap.ic_avatar)
                //设置加载失败后的图片显示
                .error(R.drawable.ic_launcher_background)
                .centerCrop()
                .apply(options)
                //缓存策略,跳过内存缓存【此处应该设置为false,否则列表刷新时会闪一下】
                .skipMemoryCache(false)
                //缓存策略,硬盘缓存-仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                //设置图片加载的优先级
                .priority(Priority.HIGH)
                .into(iamgeView);

具体使用:

  • Glide重新改变图片大小
 .override(imageWidthSize,imageHeightSize) 

具体:

setColumnNumber(mContext,3);//计算宽度和高度值(1:1.5或者1:1)

GlideApp.with(mContext)
                .load(imgUrl)
                //设置等待时的图片
                .placeholder(R.drawable.img_loading)
                //设置加载失败后的图片显示
                .error(R.drawable.img_error)
                .centerCrop()
                .override(imageWidthSize,imageHeightSize)
                //默认淡入淡出动画
                .transition(withCrossFade())
                //缓存策略,跳过内存缓存【此处应该设置为false,否则列表刷新时会闪一下】
                .skipMemoryCache(false)
                //缓存策略,硬盘缓存-仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                //设置图片加载的优先级
                .priority(Priority.HIGH)
                .into(mImgOverride);
    //用于计算图片的宽高值
    private int imageWidthSize;
    private int imageHeightSize;

    private void setColumnNumber(Context context, int columnNumber) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics metrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(metrics);
        int widthPixels = metrics.widthPixels;
        imageWidthSize = widthPixels / columnNumber;
        imageHeightSize = (int)(imageWidthSize * 1.5);//长方形样式,二选一
        //imageHeightSize = imageWidthSize;//正方形样式,二选一
    }
  • Glide圆形效果
 .circleCrop()

具体:

 GlideApp.with(mContext)
                .load(imgUrl)
                //设置等待时的图片【这个时候需要注释,否则这个会作为背景图】
                //.placeholder(R.drawable.img_loading)
                //设置加载失败后的图片显示
                .error(R.drawable.img_error)
                .centerCrop()
                .override(imageWidthSize,imageHeightSize)
                //默认淡入淡出动画
                .transition(withCrossFade())
                //缓存策略,跳过内存缓存【此处应该设置为false,否则列表刷新时会闪一下】
                .skipMemoryCache(false)
                //缓存策略,硬盘缓存-仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                //设置图片加载的优先级
                .priority(Priority.HIGH)
                //圆形
                .circleCrop()
                .into(mImgCircleCrop);
  • Glide圆角效果
 .transform(new RoundedCornersTransformation(dip2px(mContext,10),0))

具体:

 GlideApp.with(mContext)
                .load(imgUrl)
                //设置等待时的图片【这个时候需要注释,否则这个会作为背景图】
                //.placeholder(R.drawable.img_loading)
                //设置加载失败后的图片显示
                .error(R.drawable.img_error)
                .centerCrop()
                .override(imageWidthSize,imageHeightSize)
                //默认淡入淡出动画
                .transition(withCrossFade())
                //缓存策略,跳过内存缓存【此处应该设置为false,否则列表刷新时会闪一下】
                .skipMemoryCache(false)
                //缓存策略,硬盘缓存-仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                //设置图片加载的优先级
                .priority(Priority.HIGH)
                .transform(new RoundedCornersTransformation(dip2px(mContext,10),0))
                .into(mImgRound);

   
    public static int dip2px(Context context, float dpValue) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int)((dpValue * scale) + 0.5f);
    }

你可能感兴趣的:(Glide使用加圆角处理)