1.常用xml定义:
命名空间 不引对 没提示
xmlns:fresco=”http://schemas.android.com/apk/res-auto”
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
fresco:actualImageScaleType="focusCrop"
fresco:placeholderImage="@mipmap/icon_placeholder"
fresco:placeholderImageScaleType="fitCenter"
fresco:progressBarImage="@mipmap/icon_progress_bar"
fresco:progressBarImageScaleType="centerInside"
fresco:progressBarAutoRotateInterval="5000"
fresco:failureImage="@mipmap/icon_failure"
fresco:failureImageScaleType="centerInside"
fresco:retryImage="@mipmap/icon_retry"
fresco:retryImageScaleType="centerCrop"
fresco:fadeDuration="5000"
fresco:backgroundImage="@android:color/holo_orange_light"
fresco:roundedCornerRadius="30dp"
fresco:roundAsCircle="true"
></com.facebook.drawee.view.SimpleDraweeView>`
加载不同图片:
//assets目录下的资源
public void assetsBtnOnClick(View view) {
//assets资源加载
StringBuilder path = new StringBuilder(“asset:///”);
path.append(“ic_launcher.png”);
imageView.setImageURI(Uri.parse(path.toString()));
}
//file本地SD卡图片加载
public void fileBtnOnClick(View view) {
//File资源加载
StringBuilder path = new StringBuilder(“file://”);
path.append(Environment.getExternalStorageDirectory());
path.append(“/”);
String fileName = “image.png”;
path.append(fileName);
imageView.setImageURI(Uri.parse(path.toString()));
}
//res目录下的资源
public void resBtnOnClick(View view) {
//RES资源加载
StringBuilder path = new StringBuilder(“res://”);
//当前包名
path.append(this.getPackageName());
path.append(“/”);
//资源ID
path.append(String.valueOf(R.mipmap.a_0));//R.mipmap.a_0与R.drawable.a_0同样引用图片的资源ID
imageView.setImageURI(Uri.parse(path.toString()));
}
核心思想就是 Fresco只支持绝对路径,就是要在路径前加上其对应的 scheme
Fresco支持的URIs
工具类FrescoUtils地址:https://github.com/glassLake/FrescoUtlis