Android设计一个图片加载框架

本文不是具体编码去实现一个图片加载的框架,而是从理论上来讲解设计一个图片加载框架的注意事项和涉及的知识点,提供一个思路,或者帮助童鞋们应付面试。目前Android 发展至今优秀的图片加载框架太多,例如:Imageloader、Picasso、Glide等等。但是作为程序猿,懂得其中的实现原理还是相当重要的,只有懂得才能更好地使用。于是乎,今天我就简单设计一个网络加载图片框架。主要就是熟悉图片的网络加载机制。

一、简介

一个实用的图片加载框架应该具备以下两个功能:

  1. 图片的加载:
    包括从不同来源(网络、内存、文件系统等)
    支持同步及异步方式
    支持对图片的压缩(有效的降低OOM的发生概率)等等;
  2. 图片的缓存:
    包括内存缓存和磁盘缓存。

下面就围绕着两点来展开。

二、图片加载

不同来源(网络、内存、文件系统等)

根据不同的业务需求和使用场景,我们的应用有时候需要从网络上加载图片,有时候需要从磁盘加载,有时候又希望从内存中直接获取。因此一个完善的图片加载框架应该支持从不同的来源来加载一个图片:

  • 对于网络上的图片,我们可以使用HttpURLConnection来下载并解析;
  • 对于磁盘中的图片,我们可以使用BitmapFactory的decodeFile方法;
  • 对于内存中的图片,则直接使用即可。

支持同步及异步方式

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小山研磨代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值