页面上会有一些细节处理,比如说图片的圆角处理
这里使用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);
}