开原框架GLIDE

对于图片加载框架,想必大家用的最多的应该是glide吧。

那么除了glide好用之外还有什么其他的有点呢?

其实glide的核心思想就是生命周期管理和图片缓存。

使用:

class GlideTest : AppCompatActivity() {

    private var URL:String = "www.xxxxx"
    private var iv: ImageView? = null;

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        iv = findViewById<ImageView>(R.id.iv)
    }

    override fun onStart() {
        super.onStart()
    }

    fun UseGlide( context:Context) {
        Glide.with(context).load(URL).into(iv!!)
    }
}

生命周期with:

我们从with()方法出发,对于主线程的Glide我们通过创建一个空白Fragment监听Activity的生命周期,然后根据生命周期处理任务。

 load方法:

load方法指是创建一个RequestBuilder,加载资源的

into方法:

into方法就是何如经过重重调用、回调,最好给我们的ImageView给展示图片。在Glide注册机中给我们判断了传入的资源是URL还是drawable还是其他,然后调用相关的类进行处理。

这其中还会使用队列集合,正在执行的队列和准备执行的队列;这设计思想怎么有点像OkHttp呢

 图片缓存机制:

1、内存缓存

        1)活动缓存

        2)内存缓存LRU

        1)和2)都是内存缓存,为什么还要这样设置呢?

        假如我们的Activity正在显示图片,这时候往内存缓存中添加数据,正好队列中达到了最大值,需要清理数据,这个数据正在被我们的ImageView使用,这不就出问题了。所以多加了一级活动缓存防止这种情况发生。

2、磁盘缓存

3、网络或IO

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值