欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

fresco图片加载框架

程序员文章站 2024-03-17 09:18:04
...

添加依赖

implementation 'com.facebook.fresco:fresco:0.14.1'

app继承Application初始化fresco

private void fresco() {

        //构建磁盘高速缓存配置
        DiskCacheConfig diskCacheConfig = DiskCacheConfig.newBuilder(this)
                //设置缓存文件名
                .setBaseDirectoryName("images")
                //设置缓存路径
                .setBaseDirectoryPath(this.getApplicationContext().getCacheDir())
                //设置最大缓存大小
                .setMaxCacheSize(1024 * ByteConstants.MB)
                //磁盘空间不足最大缓存
//                .setMaxCacheSizeOnLowDiskSpace(1024*ByteConstants.MB)
                //小磁盘设置磁盘最大缓存
//                .setMaxCacheSizeOnVeryLowDiskSpace(1024*ByteConstants.MB)
                .build();
        //设置图片缓存
        ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig.newBuilder(this)
                .setMainDiskCacheConfig(diskCacheConfig)
                .build();
        //fresco初始化
        Fresco.initialize(this, imagePipelineConfig);
    }

xml添加控件

<com.facebook.drawee.view.SimpleDraweeView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/imagee_id"
        />

列表配置器中使用

holder.imagee_id.setImageURI(Uri.parse(shoplist.get(i).getImageUrl()));

banner中使用fresco框架
xml中为banner控件无SimpleDraweeView

banId.setBannerStyle(BannerConfig.CIRCLE_INDICATOR)
//设置轮播图图片集合
                .setImages(banlist1)
//设置文字集合
                .setBannerTitles(banlist2)
//设置图片加载的框架
                .setImageLoader(new imageload())
                //自动播放
                .isAutoPlay(true)
                .start();
    }

    public class imageload extends ImageLoader {

        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
//            Glide.with(context).load(path).into(imageView);
            imageView.setImageURI(Uri.parse((String) path));


        }

        @Override
        public ImageView createImageView(Context context) {
            SimpleDraweeView simpleDraweeView = new SimpleDraweeView(context);
            //                          getResources()在Activity中调用,如果在fragment中getActivity. getResources()
            GenericDraweeHierarchy build = new GenericDraweeHierarchyBuilder(getResources())
            //设置圆角显示
                    .setRoundingParams(RoundingParams.fromCornersRadii(100, 100, 100, 100))
                    .build();
            simpleDraweeView.setHierarchy(build);
            return simpleDraweeView;
        }
    }