相信阅读了我上一篇文章的小伙伴们,应该对facebook的fresco库已经有了初步的了解了,本文接下去写简单使用facebook/fresco库来加载后台服务器的图片。
大神可以自动忽略此文~
此处要补充一点使用fresco库最重要的第一步,因为我用的是eclipse,所以项目依赖库以后需要新建一个MyApplication类继承Application,重写onCreate方法来初始化fresco库,
public class DemoApp extends Application {
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}
并在清单文件中引用 <application android:name=".MyApplication"……(不执行初始化这一步是会报错的哦!)
使用fresco库加载后台服务器或者网络图片的过程跟加载本地项目静态图片的过程基本上不会相差很多,是换汤不换药的,所以我封装的方法依然可以使用,只不过换掉了网址url而已,好啦!废话不多说,上代码一看究竟
xml文件:
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/ani_image"
android:layout_width="200dp"
android:layout_height="300dp"/>
Activity类:
封装了使用fresco库的方法:
private void displayImageFresco(String url, SimpleDraweeView draweeView) {
Uri uri = Uri.parse(url);
draweeView.setImageURI(uri);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri).build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request).setAutoPlayAnimations(true).build();
draweeView.setController(controller);
}
传入String url = "http://m.tuniucdn.com/fb2/t1/G1/M00/B5/EC/Cii9EVcxN8SIHTU8AAHN5lSfAg0AAFWuQGISEgAAc3-388_w640_h0_c0_t0.jpg";
使用 displayImageFresco(url, draweeView);
此处的SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.ani_image);
好啦!这样就可以实现使用fresco库加载后台图片了。但是有一点还是要啰嗦一下,使用fresco库无非就是想减小内存,防止项目出现OOM等错误,所以一般一个项目中尽量把所有的图片控件都换成fresco库的SimpleDraweeView 控件。
最后再强调一句如果刚好有大神一不小心二不留神就把本文看完的请勿喷,不足之处请多多指点~^_^~