gpt4 book ai didi

android - Outofmemeoryerror (viewpager + imageviews)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:35 25 4
gpt4 key购买 nike

我在 viewpager 中显示 150 多张图片,当页面大小超过 70 时,应用程序崩溃了,所有图像都从网络加载,我已经休假 [链接]:Strange out of memory issue while loading an image to a Bitmap object

每当页面滑动达到 4 次时,我都会回收它,

对于占用 200 MB 内存的 70 页应用程序。

我需要你的帮助,如何处理

我必须通过滑动来显示所有页面...

我也用过Runtime.getRuntime().gc();

如果应用程序内存达到 50+ MB,有什么方法可以释放内存

提前致谢

最佳答案

完整的解决方案可以在下面找到,重要的是 destroyItem 方法中的几行:

private class ContentPagerAdapter extends PagerAdapter {
@Override
public void destroyItem(View collection, int position, Object o) {
View view = (View)o;
((ViewPager) collection).removeView(view);
view = null;
}

@Override
public void finishUpdate(View arg0) {
// TODO Auto-generated method stub

}
@Override
public int getCount() {
return ids.length;
}

@Override
public Object instantiateItem(View context, int position) {
ImageView imageView = new ImageView(getApplicationContext());
imageView.findViewById(R.id.item_image);
imageView.setImageBitmap(BitmapFactory.decodeResource(getResources(), ids[position]));

((ViewPager) context).addView(imageView);

return imageView;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==((ImageView)object);
}

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
// TODO Auto-generated method stub
}
@Override
public Parcelable saveState() {
// TODO Auto-generated method stub
return null;
}
@Override
public void startUpdate(View arg0) {
// TODO Auto-generated method stub

}

关于android - Outofmemeoryerror (viewpager + imageviews),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9373059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com