Glide坑遇记
Glide 坑遇记
有一段时间没有更新文章了,但登录 一些平台(这里不说出平台名称了,一来避嫌,二来现在对这些平台提供的数据也没太多好感了) 提供的接口,敲写一个生活工具类的App,一方面是使用 Retrofit + RxJava + okhttp 这种比较热门的框架结构熟悉一下,一方面是集体测试一下 GitHub 平时不太使用的热门库。现在这个项目还在开发中,上线后会通知大家,也会在适当的时候把这个项目的源代码开源到 GitHub,同时也会写一些这个项目用到的大家感兴趣的技术的介绍文章。好了,啰嗦的够多了,开始今天的正题...
Glide 的基本使用可以查看下面这些文章:
1、Glide 实现 ImageView 宽度填满,高度自适应的效果
要说这个,就要先说一下大家在平时用到 ImageView 实现宽度填满,高度自适应的方法。
ImageView 宽度填满,高度自适应常用在:
ListView 列表布局的条目中(RecycleView 同理),比如实现 item 中的图片充满屏幕,高度根据具体图片比例自适应,商品详情中常常用到。
GridView 网格布局的条目中,假如 item 有两列,想让每一列的 item 中的图片占用屏幕的一半。
其他使用单独图片也想达到这种效果的场景。
这里提供两种实现方法,也都是大家都知道:
1、重写 onMeasure 方法
public class ResizableImageView extends ImageView {
public ResizableImageView(Context context) {
super(context);
}
public ResizableImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
Drawable d = getDrawable();
if(d!=null){
int width = MeasureSpec.getSize(widthMeasureSpec);
//高度根据使得图片的宽度充满屏幕计算而得
int height = (int) Math.ceil((float) width * (float) d.getIntrinsicHeight() / (float) d.getIntrinsicWidth());
setMeasuredDimension(width, height);
}else{
sup