首先把网络、SD卡的读写权限添加上:
添加依赖,好像版本太高不支持GIF类型的动态图????
compile 'com.facebook.fresco:fresco:0.9.0'
private SimpleDraweeView simple;//控件
@Override
protected void onCreate(Bundle savedInstanceState) {
//Fresco库的初始化,要先初始化库,才能完成布局文件的加载
Fresco.initialize(this);//初始化框架
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String url = "http://img4.imgtn.bdimg.com/it/u=1738110171,2299636339&fm=21&gp=0.jpg";//正确网址
Uri uri = Uri.parse("http://img4.imgtn.bdimg.com");//错误的地址
//找出控件
simple = (SimpleDraweeView) findViewById(R.id.simpledraweeview);
simple.setImageURI(uri);//开始下载
//重试,创建DraweeController对象
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(url)//URL地址
.setTapToRetryEnabled(true)//开启点击重试
.build();//构建
simple.setController(controller);
private String str = Environment.getExternalStorageDirectory().getAbsolutePath();
2、加载SD卡上面的图片,注意格式:
file:///。。。。。,字符串形式
String uri= "file:///storage/emulated/0/DCIM/Camera/IMG_20160227_133717_904.jpg";
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setTapToRetryEnabled(true)
.build();
simple.setController(controller);Uri uri=Uri.parse("asset:///aa.gif");
DraweeController controller=Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setAutoPlayAnimations(true)
.build();
simple.setController(controller);
注意格式:res:///
Uri uri = Uri.parse("res:///" + R.mipmap.bb113);
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setTapToRetryEnabled(true)
.build();
simple.setController(controller);
注意格式:asset:///
Uri uri=Uri.parse("asset:///aa.gif");
DraweeController controller=Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setAutoPlayAnimations(true)
.build();
simple.setController(controller);
rap_content
Drawees 不支持 wrap_content 属性。
所下载的图像可能和占位图尺寸不一致,如果设置出错图或者重试图的话,这些图的尺寸也可能和所下载的图尺寸不一致。
如果大小不一致,假设使用的是 wrap_content,图像下载完之后,View将会重新layout,改变大小和位置。这将会导致界面跳跃。
固定宽高比
只有希望显示固定的宽高比时,可以使用wrap_content。
如果希望图片以特定的宽高比例显示,例如 4:3,可以在XML中指定:
也可以在代码中指定显示比例:
mSimpleDraweeView.setAspectRatio(1.33f);
XML文件:
缩放类型—ScaleType:
类型 描述
center 居中,无缩放
centerCrop 保持宽高比缩小或放大,使得两边都大于或等于显示边界。居中显示。
focusCrop 同centerCrop, 但居中点不是中点,而是指定的某个点
centerInside 使两边都在显示边界内,居中显示。如果图尺寸大于显示边界,则保持长宽比缩小图片。
fitCenter 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内。居中显示
fitStart 同上。但不居中,和显示边界左上对齐
fitEnd 同fitCenter, 但不居中,和显示边界右下对齐
fitXY 不保存宽高比,填充满显示边界
none 如要使用tile mode显示, 需要设置为none
推荐使用:focusCrop 类型