1.导入依赖 并添加 网络权限(我就不粘贴网络权限了)
implementation 'com.facebook.fresco:fresco:1.12.0'
2.在Application中初始化
ImagePipelineConfig pipelineConfig = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(DiskCacheConfig.newBuilder(this)
.setBaseDirectoryPath(Environment.getDownloadCacheDirectory())//设置外部SD卡缓存目录文件
.setBaseDirectoryName("cc/")//设置缓存名称
.setMaxCacheSize(10*1024*1024)//设置缓存大小
.build())
.build();
Fresco.initialize(this, pipelineConfig);
3.布局文件(必须使用SimpleDraweeView控件 宽或高必须的是固定值)
//在最顶部加入
xmlns:fresco="http://schemas.android.com/apk/res-auto"
//不然下面的freso属性是用不了!!!
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="400dp"
android:layout_height="300dp"
android:id="@+id/image"
fresco:placeholderImage="@drawable/holder"//展位图
fresco:failureImage="@drawable/err"//当加载图片出错时
fresco:retryImage="@drawable/res"
fresco:roundAsCircle="true"//圆角设置
/>
4.activty中
//渐进式加载图片
//控件
SimpleDraweeView image=findViewById(R.id.img);
Uri uri = Uri.parse(bean.getMasterPic());//网络图片资源
ImageRequest build = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true).build();//设置渐进渲染已启用
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(build)
.build();
//设置图片
image.setController(controller);