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);