android - Outofmemeoryerror (viewpager + imageviews)

标签 android out-of-memory android-imageview android-viewpager

我在 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/

相关文章:

java - 元素不会在 Constraintlayout Android Studio 中正确居中

android - setContentView 导致崩溃

Android 位图 OutOfMemoryError

android - ImageView - 缩放拉伸(stretch)或下拉

android - 编译和目标 SDK 版本高于设备 SDK 版本

java - 使用快速拨号 float 操作按钮处理菜单项选择

android - 图像在 viewflipper 中居中

Android:如何在ImageView中显示视频缩略图?

java - 编译文件时内存不足异常

.net - WinDbg内存分析