SelectableRoundedImageView作为轮播图,图片内存溢出

    compile 'com.joooonho:selectableroundedimageview:1.0.1'

起初做项目,需要轮播图
SelectableRoundedImageView作为轮播图,图片内存溢出_第1张图片
123.jpg

一看这种,图片,肯定想到的是以前用过的圆角图片控件,做成选项卡的样式,但是之后测试的时候发现,在该轮播图界面锁屏后,再解锁,程序内存溢出了。。。

用Glide加载图片

Glide.with(context).load(list.get(position).getImage()).placeholder(R.mipmap.no_img2).dontAnimate().error(R.mipmap.no_img2).into(img);

得加上.dontAnimate()否则报错
看Memory,发现每次切换一张轮播图,内存就会加2M。。。。
这可是个大问题

SelectableRoundedImageView作为轮播图,图片内存溢出_第2张图片
125.jpg

SelectableRoundedImageView作为轮播图,图片内存溢出_第3张图片
124.jpg

每次滑动一次轮播图就能加2M左右,测试大概到能到170M左右的内存后就会溢出,这问题果断是换一个控件,最后找到一个,就是用Imageview,再加上一个圆角的覆盖,也能实现这种效果


    
    
    compile 'com.gcssloop.widget:rclayout:1.4.1@aar'
allprojects {
    repositories {
        jcenter()
        maven { url "http://lib.gcssloop.com:8081/repository/gcssloop-central/" }
    }
}

这样再次看memory,


SelectableRoundedImageView作为轮播图,图片内存溢出_第4张图片
126.jpg
SelectableRoundedImageView作为轮播图,图片内存溢出_第5张图片
125.jpg

每次基本上增加知识0.04M大概在占用内存到达40M左右的时候会内存回收,不会造成内存溢出

用的轮播图控件是ultraviewpager,怎么使用,见原作者的Github,有详解

https://github.com/alibaba/UltraViewPager/blob/master/README-ch.md

你可能感兴趣的:(SelectableRoundedImageView作为轮播图,图片内存溢出)