glide 设置宽高_Glide坑遇记:宽度铺满高度自适应 & GIF加载之坑

本文介绍了Glide在加载图片时遇到的坑,包括如何实现ImageView宽度填满高度自适应,以及GIF加载的问题和解决方案。重点讨论了Glide的onMeasure方法、override设置、asBitmap加载策略和Gif图片显示次数控制。同时提到了避免图片和默认图交替时闪烁、CenterCrop与Transformer的共存问题,以及Glide使用的一些实用技巧,如预加载、暂停/恢复请求和清除请求。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值