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);
原创文章 5 获赞 2 访问量 1970

猜你喜欢

转载自blog.csdn.net/qq_45312619/article/details/106070394