android 内存回收

做了一个动态展示90张1920 * 1080图片的播放器。用的是ViewPager,图片是动态加载的,用到时候才加载进来。
但是加载进来以后内存无法回收,用了各种方法都无法解决。小弟愚笨,或许不该用ViewPager?我是因为ViewPager加动画容易才用的。大家有什么好的方法呢,或者帮我看看代码的问题。多谢。

Map<Integer, ImageView> imgMap = new HashMap<>;
class MyPagerAdapter extends PagerAdapter { @Override public void destroyItemViewGroup container, int position, Object object { container.removeViewimgMap.getposition; releaseImageViewResouceImageView object; Glide.clearView object; imgMap.removeposition; } @Override public int getCount { return paths.size; } @Override public boolean isViewFromObjectView view, Object object { return view == object; } @Override public ImageView instantiateItemViewGroup container, int position { Log.e"SlideToShowView", "position--->" + position; ImageView imageView = new ImageViewcontext; Glide.withcontext.loadpaths.getposition.intoimageView; imgMap.putposition, imageView; container.addViewimageView; return imageView; } } public static void releaseImageViewResouceImageView imageView { if imageView == null return; Drawable drawable = imageView.getDrawable; if drawable != null && drawable instanceof BitmapDrawable { BitmapDrawable bitmapDrawable = BitmapDrawable drawable; Bitmap bitmap = bitmapDrawable.getBitmap; if bitmap != null && !bitmap.isRecycled { bitmap.recycle; } }
}

为什么需要这个imgMap?还有你的releaseImageViewResource方法是怎样的?

不对吧,我记得ViewPager是可以限定展示页数的,不可见的就销毁了,怎么会释放不了内存呢?
当然用ViewPager的确很不科学

发表评论

电子邮件地址不会被公开。 必填项已用*标注