关于fresco
一、引入fresco
dependencies{compile'com.facebook.fresco:fresco:0.12.0'}
二、开始使用
1.在加载图片之前,你必须初始化Fresco类。你只需要调用Fresco.initialize一次即可完成初始化,在Application的onCreate里面做这件事再适合不;
2.声明 internet权限
3.在xml布局文件中, 加入命名空间:xmlns:fresco="http://schemas.android.com/apk/res-auto";
4.加入SimpleDraweeView:
5.开始加载图片:
Uri uri=Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView=(SimpleDraweeView)findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);
三、支持的URI
Fresco 支持许多URI格式。
特别注意:Fresco不支持相对路径的URI. 所有的 URI 都必须是绝对路径,并且带上该 URI 的 scheme。
如下:
类型SCHEME示例
远程图片http://,https://
本地文件file://
Contentprovider content://
asset目录下的资源asset://
res目录下的资源res://
Uri中指定图片数据data:mime/type;base64,数据类型必须符合rfc2397规定(仅支持 UTF-8)
res 示例:
Uri uri = Uri.parse("res://包名(实际可以是任何字符串甚至留空)/" + R.drawable.ic_launcher);
四、在XML中使用Drawees
你必须声明android:layout_width和android:layout_height。如果没有在XML中声明这两个属性,将无法正确加载图像。
XML属性意义
fadeDuration淡入淡出动画持续时间(单位:毫秒ms)
actualImageScaleType实际图像的缩放类型
placeholderImage占位图
placeholderImageScaleType占位图的缩放类型
progressBarImage进度图
progressBarImageScaleType进度图的缩放类型
progressBarAutoRotateInterval进度图自动旋转间隔时间(单位:毫秒ms)
failureImage失败图
failureImageScaleType失败图的缩放类型
retryImage重试图
retryImageScaleType重试图的缩放类型
backgroundImage背景图
overlayImage叠加图
pressedStateOverlayImage按压状态下所显示的叠加图
roundAsCircle设置为圆形图
roundedCornerRadius圆角半径
roundTopLeft左上角是否为圆角
roundTopRight右上角是否为圆角
roundBottomLeft左下角是否为圆角
roundBottomRight右下角是否为圆角
roundingBorderWidth圆形或者圆角图边框的宽度
roundingBorderColor圆形或者圆角图边框的颜色
roundWithOverlayColor圆形或者圆角图底下的叠加颜色(只能设置颜色)
viewAspectRatio控件纵横比
可用的缩放类型
center居中,无缩放。
centerCrop保持宽高比缩小或放大,使得两边都大于或等于显示边界,且宽或高契合显示边界。居中显示。
focusCrop同centerCrop, 但居中点不是中点,而是指定的某个点。
centerInside缩放图片使两边都在显示边界内,居中显示。和fitCenter不同,不会对图片进行放大。
如果图尺寸大于显示边界,则保持长宽比缩小图片。
fitCenter保持宽高比,缩小或者放大,使得图片完全显示在显示边界内,且宽或高契合显示边界。居中显示。
fitStart同上。但不居中,和显示边界左上对齐。
fitEnd同fitCenter, 但不居中,和显示边界右下对齐。
fitXY不保存宽高比,填充满显示边界。
none如要使用tile mode显示, 需要设置为none