Fresco、Glide、Picasso的比较

作者: 初见破晓 | 来源:发表于2016-11-25 11:46 被阅读166次

    昨天去面试,谈到了几个图片加载框架。Fresco;Glide;Picasso
    面试官问起了那个框架更好一点,我说Glide吧,并说了几个在之前项目中实际应用的例子,和glide的一些原理。阐述了一下我的观点。
    回到家总觉得是没有完全的阐述好我的观点,也是因为我没看过Fresco和Picasso的源码,只留心过glide的原理。因为水平有限,分析三个框架的源码不太现实,我觉得还是要拿出数据来证明(碰巧最近待业在家)。

    加载资源:
    每一种框架都分别尝试了2种图片
    第一张图是501x428、找了一个平时项目中较平均的分辨率吧
    http://www.youxiping.com/data/attachment/portal/201509/11/144756yp966fkf07173v4z.jpg
    第二张图是1440*2560、整一个大一点的图片加载试试看吧
    http://bizhi.cnanzhi.com/upload/bizhi/2014/1202/14175104904742.jpg

    1、先说Fresco

    配置按照官方的教程,姑且称之为0配置吧:

    public class MyApplication extends Application {@Override public void onCreate() {
            super.onCreate();
            Fresco.initialize(this);
        }
    }
    
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_centerInParent="true"
            android:id="@+id/my_image_view"
            android:layout_width="130dp"
            android:layout_height="130dp"
            />
    
    imageView.setImageURI("xxxx");
    

    这是加载图片的例子
    加载第一张图片时看一下内存的使用率

    Paste_Image.png

    比较大分辨率的图片

    Paste_Image.png

    2、Glide

    glide 的使用相对来说更为简单

    Glide
    .with(this)
    .load("http://www.youxiping.com/data/attachment/portal/201509/11/144756yp966fkf07173v4z.jpg")
    .into(imageView);
    
    Paste_Image.png Paste_Image.png

    3、Picasso

    就使用上来讲,Picasso和Glide差别很小了

    Picasso
    .with(this)
    .load("http://www.youxiping.com/data/attachment/portal/201509/11/144756yp966fkf07173v4z.jpg")
    .into(imageView);
    
    Paste_Image.png
    Paste_Image.png

    3、最后看下依赖包大小

    Paste_Image.png Paste_Image.png Paste_Image.png

    相关文章

      网友评论

        本文标题:Fresco、Glide、Picasso的比较

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