优点:
1、图片从屏幕消失时立刻释放。
2、如果网络加载失败的话,可点击占位符重新加载图片。
3、可以在图片上显示加载的进度条。
4、优先显示低分辨率的图片,待到数据到达后再显示高清图片。
Gradle配置
compile 'com.facebook.fresco:fresco:0.9.0+'
在Application的onCreate方法中初始化
Fresco.initialize(this);
布局文件
xmlns:app="http://schemas.android.com/apk/res-auto"
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_photo_sd"
android:layout_width="100dp"
android:layout_height="100dp"
app:roundAsCircle="true"
app:actualImageScaleType="focusCrop"
app:failureImage="@mipmap/hugh"
app:placeholderImage="@mipmap/hugh"/>
设置显示图片
方法一:
ImageRequest request = ImageRequestBuilder
.newBuilderWithSource(Uri.parse("http://attimg.dospy.com/img/day_100708/20100708_2c925dfb4b5f0aa64b6cL2zFfXzrsP3x.gif"))
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(simpleDraweeView.getController())
.setAutoPlayAnimations(true) // 设置动图自动播放
.build();
simpleDraweeView.setController(controller);
方法二:
simpleDraweeView.setImageURI(Uri.parse());
各种特效
a、点击重新加载图片
布局文件:
frescon:retryImage="@mipmap/notice_ico_birthday" // 设置4次点击重新加载失败后显示的图片
************************************************************************************************
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setTapToRetryEnabled(true) // 这里是重点,设置允许点击重新加载
.setUri(Uri.parse("http://www.bz55.com/uploads/allimg/140722/1-140H2114124.jpg"))
.setOldController(simpleDraweeView.getController())
.build();
simpleDraweeView.setController(controller);
在代码中设置各种特效
RoundingParams roundingParams = new RoundingParams()
.setRoundAsCircle(true);
GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(getResources());
GenericDraweeHierarchy hierarchy = builder
.setProgressBarImage(new ProgressBarDrawable()) // 设置进度条
.setPlaceholderImage(getResources().getDrawable(R.mipmap.ic_launcher)) // 设置占位符
.setFailureImage(getResources().getDrawable(R.mipmap.notice_ico_undo)) // 设置加载失败的图片
.setRetryImage(getResources().getDrawable(R.mipmap.notice_ico_birthday)) // 设置反复加载失败的图片
.setRoundingParams(roundingParams) // 设置圆角
.build();
simpleDraweeView.setHierarchy(hierarchy);
simpleDraweeView.setImageURI(Uri.parse("http://www.bz55.com/uploads/allimg/140722/1-140H2114124.jpg"));