Android关于加载图片的框架有Universal-Image-Loader、Picasso、Volley、Fresco,这篇文章主要简单的分析一下Fresco的用法,Fresco是Facebook发布的一款开源框架,在内存方面的表现极为优秀。
Fresco中文说明:http://www.fresco-cn.org/Fresco项目GitHub地址:https://github.com/facebook/fresco
假如有这样的一个需求当图片正在加载时应该呈现正在加载时的图像,当图片加载失败时应该呈现图片加载时的图像,当重新加载图片时,应该呈现重试时图像,直到这张图片加载完成。这时建议推荐用Fresco。
本例子请求的图片地址是存在的,如果想查看重新加载
Fresco用法及其简单:
在项目中引入Fresco,只需要在Module的build.gradle文件的dependencies中添加一句话:
compile 'com.facebook.fresco:fresco:0.7.0+'
效果
activity_main.xml :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_margin="20dp"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/main_sdv1"
android:layout_width="100dp"
android:layout_height="100dp"
fresco:actualImageScaleType="focusCrop"
fresco:placeholderImage="@mipmap/default_error"
fresco:placeholderImageScaleType="focusCrop"
fresco:progressBarImage="@mipmap/icon_progress_bar"
fresco:progressBarImageScaleType="focusCrop"
fresco:progressBarAutoRotateInterval="5000"
fresco:failureImage="@mipmap/icon_failure"
fresco:failureImageScaleType="focusCrop"
fresco:retryImageScaleType="focusCrop"
fresco:fadeDuration="5000"
></com.facebook.drawee.view.SimpleDraweeView>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/main_sdv2"
android:layout_marginTop="20dp"
android:layout_below="@+id/main_sdv1"
android:layout_width="100dp"
android:layout_height="100dp"
fresco:actualImageScaleType="focusCrop"
fresco:placeholderImage="@mipmap/default_error"
fresco:placeholderImageScaleType="focusCrop"
fresco:progressBarImage="@mipmap/icon_progress_bar"