图片加载

【Apollo播放器】源码分析之图片加载模式

倖福魔咒の 提交于 2020-01-10 11:08:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 图片加载有很多,部份都是使用LruCache、弱引用、软引用等编写的,其编目的就是优化内存、缓存、加载效果,不过,它们都是各有千秋,下面看看【Apollo播放器】它是对图片加载如何做的 它主要结构如下: ImageInfo - 图片信息相关 ImageCache - 图片缓存相关 ImageProvider -图片提供者相关(管理器) GetBitmapTask -图片下载任务 下面一一分析每个类的结构和使用 ImageInfo.java public class ImageInfo { //图像类型 //专辑(ablum), 艺术家(artist), 播放列表(playlist), 流派genre public String type; //图像来源 //lastfm - 来自网站 //file - 来自音频 //gallery - 来自相册 //first_avail - 来自 'file' 或 'lastfm' public String source; //请求的图像的大小 //缩略图 or 正常图 public String size; //执行图像获取所需的额外数据 //lastFM - 艺术家需要艺术家的形象 //ablum - 专辑、歌手专辑图像 //file - 需要相册id /

Universal-image-loader图片加载开源框架基本使用

隐身守侯 提交于 2019-12-05 13:10:32
universal-imageloader加载图片的特点: 基本特点如下, 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 支持图片的内存缓存,文件系统缓存或者SD卡缓存 支持图片下载过程的监听 根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存 较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片 提供在较慢的网络下对图片进行加载 使用方法: 首先在自定义的application的oncreate方法中创建UIL的配置参数,可以直接 使用createDefault()方法创建一个默认的ImageLoaderConfiguration,当然我们还可以自己设置ImageLoaderConfiguration,设置如下 File cacheDir = StorageUtils.getCacheDirectory(context); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder

xUtils框架的使用

南楼画角 提交于 2019-12-02 17:46:08
xUtils简介 xUtils 包含了很多实用的android工具,xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM。 xUitls 最低兼容android 2.2 (api level 8)。 在aFinal基础上进行重构和扩展的框架,相比aFinal有很大的改善,基于网路的应用,只要处理得当,能让大家彻底的摆脱各种工具类和重复代码的困扰。 Java反射(Reflect)技术 动态获取在当前Java虚拟机中的类、接口或者对象信息 解除两个类之间的耦合性,即在未得到依赖类的情况下,自身应用可以通过编译 动态依赖注入(即需要某一类对象时动态生成类实例,并设置到被依赖的类中),减少编译时的内存开销 xUtils主要有四大模块 ViewUtils模块 android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定; 新的事件绑定方式,使用混淆工具混淆后仍可正常工作; 目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。 BitmapUtils模块 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;