Fresco可以实现:
1)占位图 2)失败图 3)加载时的图片以及动画 4)图片背景图 5)圆形以及圆角 自定义角度和哪个角 6)点击重试图片重新加载网络图片7)动画
8)图片缩放类型
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fresco="http://schemas.android.com/apk/res-auto" //注意命名空间 android:layout_width="match_parent" android:layout_height="match_parent"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/simpleDraweeView" fresco:placeholderImage="@mipmap/ic_launcher" fresco:placeholderImageScaleType="fitCenter" fresco:progressBarImage="@mipmap/icon_progress_bar" fresco:progressBarAutoRotateInterval="3000" fresco:progressBarImageScaleType="centerCrop" fresco:actualImageScaleType="centerCrop" fresco:failureImage="@mipmap/icon_failure" fresco:failureImageScaleType="centerCrop" fresco:retryImage="@mipmap/icon_retry" fresco:retryImageScaleType="center" fresco:fadeDuration="3000" fresco:backgroundImage="@android:color/holo_orange_dark" fresco:roundedCornerRadius="30dp" fresco:roundTopLeft="true" fresco:roundTopRight="true" fresco:roundBottomLeft="true" fresco:roundBottomRight="false" fresco:roundWithOverlayColor="@android:color/holo_blue_light" fresco:roundingBorderWidth="2dp" fresco:roundingBorderColor="@android:color/background_dark" android:layout_width="300dp" //Drawees不支持包裹wrap_content android:layout_height="300dp" /> </RelativeLayout> 3)MainActivity public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fresco.initialize(this);//注意:在添加布局前初始化Fresco setContentView(R.layout.activity_main); SimpleDraweeView simpleDraweeView = (SimpleDraweeView) findViewById(R.id.simpleDraweeView); Uri uri = Uri.parse("http://ope.lingyi365.com:5602/group1/M00/08/57/rBJxwFiab_mANq0fAAI8t3UoMIk911.jpg"); simpleDraweeView.setImageURI(uri);//加载图片 //设置点击重试图片,4次加载不成功显示失败的图片 DraweeController controller = Fresco.newDraweeControllerBuilder() .setUri(uri)//要加载的uri地址 .setTapToRetryEnabled(true) //开启点击重试 .setOldController(simpleDraweeView.getController())//设置旧的Cotroller .build();//构建 simpleDraweeView.setController(controller); } } 注意:1)//设置圆角图片
fresco:roundAsCircle="true"2)设置圆形和角度同时存在,只会加载圆形
补充:
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 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内。居中显示 fitStart 同上。但不居中,和显示边界左上对齐 fitEnd 同fitCenter, 但不居中,和显示边界右下对齐 fitXY 不保存宽高比,填充满显示边界 none 如要使用tile mode显示, 需要设置为none