您的位置:首页 > 其它

FaceBook开源图片加载框架Fresco的学习使用(一), Fresco下载与简单使用

2015-05-16 19:34 736 查看

一、Fresco简介

Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片。之前看大家在QQ群和各个社区都在讨论Fresco,都说性能非常好,心里禁不住诱惑,所以决定尝试一下。前途是光明的,道路是曲折的,Fresco的引入出现各种问题,折腾了我好些时间。


Fresco在github上的地址https://github.com/facebook/fresco,把Fresco下载下来,然后解压,要运行Demo看效果先要编译,Fresco用到NDK,所以编译前确保已经将NDK的根目录加入到环境变量之中。首先进入Fresco的根目录,然后双击gradlew.bat,Fresco就开始编译,由于Fresco依赖的库比较多,会下载依赖的库和Gradle工具,如果网络不太好,容易编译失败。


编译完成后,可以导入Android Studio运行Demo看效果了,Demo中不仅有Fresco加载图片的效果,还集成了Glide,Picasso,Universal Image Loader,Volley这些当前比较流行图片加载框架。通过对比,孰优孰劣,一下就看出来了,请看下面的比较


Fresco Volley







UIL Picasso






从上面的比较来看,Fresco加载图片占的内存是先对较小的,而Volley占用的内存最多,UIL和Picasso位于中间位置,两者差别不大。

二、Fresco简单使用

Fresco引入Android Studio很简单,只要在build.gradle文件中的dependencies加上下面一句代码即可:

compile 'com.facebook.fresco:fresco:0.5.0+'

引入Eclipse项目会比较麻烦一点,需要将依赖的Library导入Eclipse,依赖的library我上传一份到CSDN,地址http://download.csdn.net/download/jiangxuqaz/8708889,下载解压后添加到工程,注意:imagepipeline-okhttp这个先别添加,不然会有冲突。

添加后效果图片:



Fresco的使用:

首先需要在AndroidManifest.xml中声访问网络的权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>


然后再Application中的onCreate方法里面中初始化Fresco:

Fresco.initialize(this);


注意:如果放在Activity中初始化,一点要在setContentView前面调用,因为XML中会用到Fresco的自定义View。

在最顶层的布局文件中加上命名空间,这样可以使用Fresco自定义的一些属性:

xmlns:fresco="http://schemas.android.com/apk/res-auto"


在布局文件中加上SimpleDraweeView,用来显示图片

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/network_image_view"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center_horizontal" />
</RelativeLayout>


在Activity中:

Fresco.initialize(this);
        setContentView(R.layout.activity_main);
        String url="http://ww4.sinaimg.cn/large/90bd89ffjw1eqvmd6o8r6j20go0p5ju2.jpg";
        Uri uri = Uri.parse(url);
        SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.network_image_view);
        draweeView.setImageURI(uri);


这样就可以简单的加载网络图片了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: