动态ImageView与PNG和OutOfMemory异常?

时间:2014-08-08 17:16:46

标签: java android imageview out-of-memory

我知道有很多问题已经解决了与我同名的问题,但没有一个问题给我答案。这是我的工作:

我有一个包含项目的大型多维数组,每个项目都有名称,图像路径和其他内容。我有一个ListView列出了该数组中所有这些项目,使用它们的名称,当我们点击其中一个时,它会打开一个新的Activity,显示项目和图像的详细信息。它实际上工作,图像缩放,所有加载的东西都与用户的点击匹配,这部分是100%确定。

但是经过几次点击后,我得到了OutOfMemory异常。在我之前的应用程序版本中,没有图像,我可以连续点击所有项目(几乎一百个项目),没有任何麻烦。现在有图像和内存不足异常。所以我认为图像是问题所在。以下是我在点击后动态选择图像的方法:

ItemArray items = new ItemArray(itemID); //clicked item ID to match with the array
        setContentView(R.layout.activity_show_item);
        ImageView itemImage = (ImageView) findViewById(R.id.itemImageView);
        Resources res = getResources();
        int resID = res.getIdentifier(items.ArrayToPrint[1], "drawable", getPackageName()); //ArrayToPrint = the selected lines matching the item, verification is made in the ItemArray class and is working properly
        itemImage.setImageResource(resID);

使用此代码,图像显示为我想要的。但正如我之前所说,我得到了OutOfMemory异常。我尝试了几个东西来刷新缓存,但没有一个工作,我仍然遇到这个问题,并且不知道如何处理它。

任何线索?提前致谢 !

1 个答案:

答案 0 :(得分:0)

将所有drawables移动到项目中res文件夹中的'drawable-nodpi'文件夹可能会有所帮助。我知道它为我的应用程序释放了大量内存,显示了很多大型PNG。 Android background image memory usage