内存不足imageview

时间:2013-07-26 17:47:17

标签: imageview drawable out-of-memory

我正在使用包含按钮列表的菜单开发应用程序,当您单击其中一个按钮时,将打开另一个活动(每个按钮具有不同图像的相同活动),显示图像视图。问题是当我在不同的按钮中点击几次(打开新图像)时,应用程序崩溃,我无法解决它。有帮助吗?感谢。

1 个答案:

答案 0 :(得分:1)

这个问题是因为你在视图中使用了很多图像并且从不清理内存,然后在一瞬间你没有更多的内存用于新的内存。

解决该问题的一种形式是清理内存,始终是你的破坏和活动。 您可以覆盖活动中的下一个方法来清理内存。

@Override
    public void unbindDrawables(View view) {
        if (view.getBackground() != null) {
            view.getBackground().setCallback(null);
        }
        if (view instanceof ViewGroup) {
            for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
                unbindDrawables(((ViewGroup) view).getChildAt(i));
            }
            ((ViewGroup) view).removeAllViews();
        }
    }

该方法审查视图,在您的情况下,这些视图将是您的ImageView和ImageButton。 最后,您需要在方法onDestroy()中调用此方法(也需要覆盖该方法)。