Fresco實現圖片加載,並定義緩存大小及路徑、漸進式

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章