更新于2018年9月:几年后,我需要与本地图像缓存解决方案几乎相同的东西.这一次,UIL尚未积极开发.我比较了流行的库,结论很简单:只需使用Glide.它功能强大且可配置.多年前我不得不分叉并对UIL进行更改. Glide支持我的所有用例,包括缓存策略和使用自定义键的多级分辨率缓存.只需使用Glide!

Koushik Dutta的比较主要是速度基准.他的帖子只触及了非常基本的东西,并不是特定于本地图像.在我提出问题之后,我想与毕加索和UIL分享我的经历. Picasso和UIL都可以加载本地图像.我第一次尝试Picasso并且很开心,但后来我决定切换到UIL以获得更多自定义选项.

毕加索:

> Picasso流畅的界面很不错.但是,随着“with”,“into”,“load”的跳跃,你实际上并不知道幕后背后是什么.这让人感到困惑.

> Picasso允许您指定确切的目标尺寸.当你遇到内存压力或性能问题时,它很有用,你可以牺牲一些图像质量来提高速度.

>图像在其键中以大小缓存,当您显示不同大小的图像时,它非常有用.

>您可以自定义内存缓存大小.但它的光盘缓存仅适用于http请求.对于本地图像,如果您关心加载速度,最好有一个缩略图磁盘缓存,这样您就不必每次都为图像读取几个MB. Picasso没有这种机制调整大小并在屏幕上保存缩略图.

> Picasso不公开对其缓存实例的访问. (当你第一次配置Picasso并保持它时,你可以抓住它……).

>有时您希望将图像异步读取到侦听器返回的位图中.令人惊讶的毕加索没有那个. “fetch()”不会传回任何东西. “get()”用于同步读取,“load()”用于异步绘制视图.

> Picasso在主页上只有一些简单的例子,你必须阅读无序的javadoc以获得高级用法.

UIL:

> UIL使用构建器进行自定义.几乎所有东西都可以配置.

> UIL不允许您指定要加载到视图中的大小.它使用一些基于视图大小的规则.它没有毕加索那么灵活.我无法加载较低分辨率的图像以减少内存占用. (编辑:通过在源代码中添加ImageSize参数并绕过视图大小检查,可以轻松修改此行为)

> UIL提供可自定义的光盘缓存,您可以使用它来缓存指定大小的缩略图.但它并不完美.这里是details.(编辑:如果你关心速度并想要多级别的缩略图缓存,就像我的情况一样,你可以修改源代码,让磁盘缓存使用“memoryKey”,并使其对大小敏感)

> UIL默认在内存中缓存不同大小的图像,并且可以在配置中关闭它.

> UIL公开您可以访问的后备内存和磁盘缓存.

> UIL提供了灵活的方法来获取位图或加载到视图.

> UIL在文档方面更好. UIL在Github页面上给出了详细的用法,并且有一个链接的教程.

我建议从Picasso开始,如果你需要更多的控制和定制,请选择UIL.

android自定义图片缓存,适用于Android的本地图像缓存解决方案:Squ...相关推荐

  1. android自定义图片加载,Android自定义ProgressDialog加载图片

    为了提高用户体验,我们肯定希望该Dialog能更加炫酷,让用户看着更舒服.那如何做呢,当然是我们自己定义一个ProgressDialog了. 一.使用系统加载框 mDialog = new Progr ...

  2. android 自定义图片上传,android自定义ImageView仿图片上传示例

    看下效果图 主要看下自定义view 代码 public class ProcessImageView extends ImageView{ private Context context; priva ...

  3. android 自定义图片上传,android自定义ImageView仿图片上传(示例代码)

    Activity代码 1 public classMainActivity extends AppCompatActivity {2     ProcessImageView processImage ...

  4. Android Glide图片加载框架(三)缓存机制

    文章目录 一.缓存简介 二.缓存用法 内存缓存方式 磁盘缓存方式 三.缓存KEY 四.内存缓存 内存缓存流程 五.磁盘缓存 磁盘缓存流程 Android Glide图片加载框架系列文章 Android ...

  5. android 自定义图片,Android自定义图片集合

    本文主要包括以下内容: 使用Xfermode设置圆角图片 使用BitmapShader设置圆角图片 滑动旋转缩放的bimp图片 图片颜色处理(滑动) 图片 + 文字 其中1,2是两种不同方式处理图片圆 ...

  6. 网卡清空缓存命令_怎么清除dns缓存 查看与刷新本地DNS缓存方法 (全文)

    由于近几日百事网更换了cdn加速服务商,导致不少地区朋友无法访问百事网,包括小编电脑也是经常打不开,目前主要可以通过清除dns缓存来解决.一般来说,电脑在第一次访问一个网站后,在一定时间内会有本地DN ...

  7. android自定义图片+文字控件四种实现方法,Android自定义“图片+文字”控件四种实现方法之 二--------个人最推荐的一种...

    http://blog.csdn.net/yanzi1225627/article/details/8633872 第二种方法也要新建一个图片+文字的xml布局文件,然后写一个类继承自LinearLa ...

  8. android自定义图片过渡效果,教你做出炫酷的Android动画效果

    前言 Android动画也是Android系统中一个很重要的模块, 在平时开发中, 为了做出炫酷的效果, 动画可以说是必不可少的; 本文将总结Android中与动画相关的部分, 文中部分内容整理自文末 ...

  9. Android批量图片加载经典系列——使用二级缓存、异步网络负载形象

    一.问题描写叙述 Android应用中常常涉及从网络中载入大量图片,为提升载入速度和效率,降低网络流量都会採用二级缓存和异步载入机制.所谓二级缓存就是通过先从内存中获取.再从文件里获取,最后才会訪问网 ...

最新文章

  1. [WPF]学习笔记二---主窗体
  2. SNMP、MIB、OID概念的理解
  3. 【GAN优化】从动力学视角看GAN是一种什么感觉?
  4. VTK:颜色断开区域用法实战
  5. 创建订单 - 保存订单与子订单数据
  6. 树莓派安装ArchLinux
  7. Makefile的介绍与使用
  8. 求解一元二次方程的简单c语言程序
  9. 详解Python中的生成器表达式(generator expression)
  10. 数据结构之第一章一些概念
  11. 【SegMap: 3D Segment Mapping using Data-Driven Descriptors】
  12. Skyline软件二次开发初级——8如何在WEB页面中的三维地图上管理信息树
  13. 新浪pop服务器无响应,新浪 – Pop's Blog
  14. HTML+CSS制作课程表
  15. 根域名服务器作用,域名系统的主要功能是什么?域名系统中的本地域名服务器、根域名服务器、顶级域名 - 问答库...
  16. 卡马克揭开VR延迟背后的真相
  17. codeforces1000a csdn-博客
  18. Apollo之Canbus处理来自Control的Cmd
  19. 批量修改文件名(应用于编号修改)
  20. 了解怎么翻译音频吗?

热门文章

  1. missing go.sum entry for module providing package github.com/astaxie/beego
  2. SPSS Modeler——超市商品购买关联分析
  3. 【云驻共创】华为云之手把手教你搭建IoT物联网应用充电桩实时监控大屏
  4. L11-Python中的高阶函数的使用
  5. 关于电信4Gapn设置问题
  6. 音视频技术开发周刊 | 269
  7. 网络靶场实战-某电网调度渗透场景
  8. 水光储一体化微电网调度
  9. B-树----(多插平衡树)
  10. 登录医疗机构无法连接到远程服务器,敬业签桌面便签软件登录提示“无法连接到远程服务器”解决办法...