美文网首页
Android知识点归纳---图片

Android知识点归纳---图片

作者: 风一样的code | 来源:发表于2020-11-09 11:38 被阅读0次

知识点归纳:

图片

  1. 图片库对比
    目前比较通用的图片库是Glide和Picasso
    库的大小和方法
    对比二者的jar包,Glide要比 Picasso大
    Picasso大概八百多的方法,Glide大概2000多个方法
使用的方式
Picasso.png
Glide.png
缓存:

Picasso是下载完整的图片缓存到本地,比如图片的大小是720,如果我需要同一张图片大小也是720,那么就会直接返回,如果我需要改变这个图片的大小做展示就需要resize
Glide是先下载图片然后改变图片的大小,以适应ImageView 的大小,之后再做缓存,如果下载同一个图片,但是要在两个大小不一样的ImageView 上做展示,那么就会缓存两份
换个角度来看,这里不仅仅是缓存的问题,比如一个 ImageView 要改变它的大小,Piicasso 就只需要下载一次 full size 的图片,但是 Glide 实际上就不仅仅是下载一次了,它需要去单独下载然后改变大小适配 imageView,因为对于 Glide 来讲,需要缓存不同大小的同一张图片。

这样的设计有问题么?继续往下看

Glide使用的内存相比Picasso要小(格式相同的图片)

加载图片的时间:

直接下载的话,Picasso相比Glide要快一些,因为Glide要改变图片的大小
缓存中加载的话,Glide要快一些,Picasso要进行resize

others:

Glide支持gif
Glide更加灵活(好像加载的回调比较全面些)

Memory:

Glide 是会先下载图片,然后改变图片的大小,以适应 imageView 的要求,然后缓存到本地,同一个图片,如果应用到大小不同的ImageView上,则会缓存两份。存在即是合理,这样的设计当然有它自己的好处。

内存使用

Glide默认使用的是RGB_555,Picasso默认使用的是RGB_8888,这里可以进行修改Glide的默认加载方式,新建一个类继承GlideModule

<meta-data android:name="example.com.myanimation.GlideConfiguration" android:value="GlideModule"/>
public class GlideConfiguration implements GlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        // Apply options to the builder here.
        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
    }
    @Override
    public void registerComponents(Context context, Glide glide) {
        // register ModelLoaders here.
    }
}

之后观察两者加载的对比:

Memory.png

这里可以看出Glide加载使用的内存是8M,Picasso使用的是13,这里就体现了之前说到的Glide加载图片的问题,Picasso是缓存整个图片的size,Glide则是改变图片大小之后缓存,这样就会节约内存,减少OutOfMemoryError 的可能性。

没有十全十美的存在,图片加载各有千秋,根据实际的需求自己选择,比如你想要你的 app 小一些,没有那么多的额外功能,那么 Picasso 是你的首选。反之,比如你的应用中需要加载 GIF,或者对于内存的大小比较在意,那么 Glide 应该是不错的选择。

个人而言,我还是比较倾向于Glide,毕竟人家支持GIF啊。

相关文章

  • Android知识点归纳---图片

    知识点归纳: 图片 图片库对比目前比较通用的图片库是Glide和Picasso库的大小和方法对比二者的jar包,G...

  • Android知识点归纳-Android部分

    2. Android部分 2.1 四大组件 Activity相关 1.Activity生命周期分析 2.Activ...

  • Android Apk 签名知识点归纳

    官方文档:https://source.android.google.cn/security/apksigning...

  • Android 组件化架构 个人笔记

    前言说明 以下内容均为 Android 组件化架构知识点的总结归纳、修正错误和完善扩展,非系统知识集,个人笔记,仅...

  • Android归纳

    生成签名文件keytool -genkey -alias android.keystore -keyalg RSA...

  • Flutter实现拼图游戏

    实现这个小游戏, 需要哪些知识点了? 一. 加载图片 二. 绘图api 在flutter中有着跟android近乎...

  • 知识点归纳

    同比、环比的定义 是本期统计数据与上期比较,例如2014年7月份与2014年6月份相比较,叫环比。与历史同时期比较...

  • Day01

    还剩两个月,时间不多,决定这段时间每天都做一下总结,把每天的新知识点都归纳起来. Android下的数据读写 An...

  • android高仿微信视频编辑页

    android高仿微信视频编辑页-视频多张图片提取 上一篇中介绍了有关视频提取图片的知识点,如果对这个不太了解 建...

  • 知识点梳理6 散碎点

    Android 散碎知识点 Android 的小块的知识点是太多,太复杂了 常用abd命令 android开发在 ...

网友评论

      本文标题:Android知识点归纳---图片

      本文链接:https://www.haomeiwen.com/subject/zeklbktx.html