课前准备
- 加载图片时,有时我们并不需要图片的原始大小,比如商品列表的小图片,使用小分辨率也能达到同样的预览效果,而且还可以节省流量和提高加载速度
- 图列


课堂笔记
- 修改 UrlUtil 中 getCoverPath 方法 ,添加 size 参数
public static String getCoverPath(String pict_url,int size) {
return "https:" + pict_url+"_"+size+"x"+size+".jpg";
}
// 列表商品图片
ViewGroup.LayoutParams layoutParams = cover.getLayoutParams();
int width = layoutParams.width;
int height = layoutParams.height;
int size = (width > height ? width : height) / 2;
String coverUrl = UrlUtils.getCoverPath(dataBean.getPict_url(), size);
Glide.with(context).load(coverUrl).into(cover);
// 轮播图图片
int measuredHeight = container.getMeasuredHeight();
int measuredWidth = container.getMeasuredWidth();
int size = (measuredWidth > measuredHeight ? measuredWidth : measuredHeight) / 2;
String looperCoverUrl = UrlUtils.getCoverPath(dataBean.getPict_url(), size);
Glide.with(context).load(looperCoverUrl).into(iv);
学习感悟
- 设置 url 用的是 “ x ”,英文小写字母 x,开始我用的是 “ * ” ,服务器崩了?Bug 在哪?黑人问号脸...
- 并不是所有布局尺寸的一半都能显示图片,开始我的列表图片布局大小是85dp,加载出来的图片是 100多点,就显示不了图片,最后我改成76dp后,显示的图片是100x100的
- 所以我觉得还是直接设置需要图片的size比较方便
//商品图片
ViewGroup.LayoutParams layoutParams = cover.getLayoutParams();
// int width = layoutParams.width;
// int height = layoutParams.height;
// int size = (width > height ? width : height) / 2;
// 直接设置图片大小
int size = 100;
String coverUrl = UrlUtils.getCoverPath(dataBean.getPict_url(), size);
Glide.with(context).load(coverUrl).into(cover);
- 轮播图里的图片可以正常显示布局一半的大小,显示的是540x540的图片,但轮播图的宽度是1080,原始图片的大小是800x800,图片变模糊了,这里可以显示图片的原始大小
- 当然,练习还是要练的