美文网首页AndroidAndroid知识Android技术知识
关于fresco加载图片的缓存设置及列表加载等

关于fresco加载图片的缓存设置及列表加载等

作者: fuuuuuccccck | 来源:发表于2016-12-28 19:46 被阅读3715次

    如果你的应用不需要显示Gif,或者显示的Gif由内部员工添加(可把控)的,可以用Glide!

    如果你的应用不需要显示Gif,或者显示的Gif由内部员工添加(可把控)的,可以用Glide!

    如果你的应用不需要显示Gif,或者显示的Gif由内部员工添加(可把控)的,可以用Glide!

    之前写过一篇文章,是关于Glide的一些坑,Glide加载gif及本地视频缩略图的坑 ,因为我们公司的应用是涉及到发帖子的功能,这里用户是可以上传gif的,而某些文件本身就有一些问题的gif,用Glide加载不出来,上面的文章末尾说过了,所以采用了Fresco,用了Fresco,才发现坑更大啊,一点一点说吧。

    首先要用到他们自己的View那些我就不重复了,功能确实强大,后面讲一些可配置可不配置但是配置了会更爽的内容

    1,设置缓存大小等,可以参考这个Fresco缓存设置 ,设置了之后,再不会出现已经加载过的图片,被自动清理了

    2,列表加载图片,一定要setResizeOptions和setOldController,如下图

    图中的width和height不一定要很准确,比如你是Grid,但是又有间隙,那width你设置成 screenWidth/spanCount的大小就好了,滑动起来跟Glide差不多了

    3,photoView,fresco貌似不能直接用photoView,没关系,有这个PhotoDraweeView 使用起来跟photoView差不多

    4,长图加载,我用的是BigImageViewer 里面包含了放大缩小的功能了

    有人会问,怎么判断是不是长图呢,我现在是没有判断,而是根据是否动态图(gif结尾)来加载,动态图用photoView,静态图用BigImageViewer

    最后,用Fresco,我加载相册还是照样卡,跟Glide完全不能比,设置了setAutoPlayAnimations(false),.setBitmapsConfig(Bitmap.Config.RGB_565)都还是很卡,用的FrescoImageLoader.java 的也是很卡,不知道有人解决了吗

    相关文章

      网友评论

      • 605a744a7bcb:imagePipelineConfigBuilder.setEncodedMemoryCacheParamsSupplier(new Supplier<MemoryCacheParams>() {
        public MemoryCacheParams get() {
        int MAX_HEAP_SIZE = (int) Runtime.getRuntime().maxMemory();
        int MAX_MEMORY_CACHE_SIZE = MAX_HEAP_SIZE / 5;//取手机内存最大值的五分之一作为可用的最大内存数

        MemoryCacheParams bitmapCacheParams = new MemoryCacheParams( //
        // 可用最大内存数,以字节为单位
        MAX_MEMORY_CACHE_SIZE,
        // 内存中允许的最多图片数量
        22,
        // 内存中准备清理但是尚未删除的总图片所可用的最大内存数,以字节为单位
        MAX_MEMORY_CACHE_SIZE,
        // 内存中准备清除的图片最大数量
        Integer.MAX_VALUE,
        // 内存中单图片的最大大小
        970*1280);
        return bitmapCacheParams;
        }
        });这几个参数数值要设置多少啊
      • 香辣牛肉面:加载相册设置setDownsampleEnabled(true),同时加载的图片记得用optionresize就不会卡了,速度非常快,比glide要给力

      本文标题:关于fresco加载图片的缓存设置及列表加载等

      本文链接:https://www.haomeiwen.com/subject/idjfvttx.html