重试.jpg
四次失败.jpg
成功.jpg
frasco.gif
Android关于加载图片的框架有Universal-Image-Loader、Picasso、Volley、Fresco,这篇文章主要简单的分析一下Fresco的用法,Fresco是Facebook发布的一款开源框架,在内存方面的表现极为优秀。
- Fresco用法及其简单:在项目中引入Fresco,只需要在Module的build.gradle文件的dependencies中添加一句代码
compile 'com.facebook.fresco:fresco:0.13.0'
- 新建一个activity_main.xml布局文件
<com.facebook.drawee.view.SimpleDraweeView
android:layout_centerInParent="true"
android:id="@+id/main_sdv"
android:layout_width="130dp"
android:layout_height="130dp"
fresco:roundAsCircle="true"
fresco:roundedCornerRadius="30dp"
fresco:roundingBorderWidth="3dp"
fresco:roundingBorderColor="@color/commonTitleColor"
fresco:placeholderImage="@mipmap/userhead"
fresco:progressBarImage="@mipmap/icon_progress_bar"
fresco:progressBarAutoRotateInterval="5000"
fresco:failureImage="@mipmap/icon_failure"
fresco:retryImage="@mipmap/icon_retry"
fresco:fadeDuration="1000" >
</com.facebook.drawee.view.SimpleDraweeView>
- Activity java文件
//创建将要下载的图片的
URIUri imageUri=Uri.parse("http://b335.photo.store.qq.com/psb?/V10eyEEK3Xf6rE/dn1GxGnLYID1lNQQVtkoFau0M20YE5Kagr5ueenkttQ!/b/dA2GscdMHwAA&bo=gAJVAwAAAAAFAPc!&rf=viewer_4");
//开始下载
//创建SimpleDraweeView对象
simpleDraweeView = (SimpleDraweeView) findViewById(R.id.main_sdv);
//创建将要下载的图片的URI
Uri imageUri = Uri.parse("http://avatar.csdn.net/5/D/9/1_vatty748895431.jpg");
//开始下载
simpleDraweeView.setImageURI(imageUri);
//创建DraweeController
DraweeController controller = Fresco.newDraweeControllerBuilder()
//重试之后要加载的图片URI地址
.setUri(imageUri)
//设置点击重试是否开启
.setTapToRetryEnabled(true)
//设置旧的Controller
.setOldController(simpleDraweeView.getController())
//构建
.build();
//设置DraweeController
simpleDraweeView.setController(controller);
. appliaction(最重要的)
@Overridepublic void onCreate()
{ super.onCreate();
Fresco.initialize(this);
}