Android图像大小限制

Android图像大小限制,android,image,memory,imageview,Android,Image,Memory,Imageview,所以我在写的Android程序上似乎遇到了问题。我仍然是一个noob,所以请帮助我理解这个问题,以及如何解决我的问题。 我正在创建一个简单的游戏,我正在为它做所有的图形设计。我的图像是1024x1024或1024x512,分辨率为300像素/英寸。是的,我知道我可能做得太多了。我只是想让图形非常清晰,看起来不错。所有图形都位于可绘制文件夹中,而不是hdpi、ldpi、mdpi、xhdpi或xxhdpi可绘制文件夹中。现在,我遇到的问题是,我的应用程序工作得很好,直到我在drawable文件夹中添

所以我在写的Android程序上似乎遇到了问题。我仍然是一个noob,所以请帮助我理解这个问题,以及如何解决我的问题。 我正在创建一个简单的游戏,我正在为它做所有的图形设计。我的图像是1024x1024或1024x512,分辨率为300像素/英寸。是的,我知道我可能做得太多了。我只是想让图形非常清晰,看起来不错。所有图形都位于可绘制文件夹中,而不是hdpi、ldpi、mdpi、xhdpi或xxhdpi可绘制文件夹中。现在,我遇到的问题是,我的应用程序工作得很好,直到我在drawable文件夹中添加了一个1024x1024图像。现在,应用程序在尝试加载图像时崩溃。我遇到的问题是内存溢出。无论运行什么活动,似乎一旦达到加载图像的极限,就会崩溃。我读了安卓分辨率页面,但可能我的英语不够好,无法理解。 我应该根据每个分辨率(hdpi、ldpi、mdpi、xhdpi和xxhdpi)调整图像的大小吗? 当我在应用程序中从一个活动移动到另一个活动时,我是否必须清除上一个活动中的ImageView以清除内存? 请帮助我了解这是如何工作的

谢谢
David

我认为您的vm预算是错误的。我在处理以前的应用程序时遇到了这个问题。在搜索之后,我从开发者指南中找到了解决方案。。。休想,希望它能解决你的问题。谢谢。我想你的虚拟机预算是错误的。我在处理以前的应用程序时遇到了这个问题。在搜索之后,我从开发者指南中找到了解决方案。。。休想这个希望可以解决你的问题。谢谢。讽刺的是,你使用的方法可能会让你的图像看起来更糟

将光栅图像放置在根可绘制文件夹中时,假定它们是
mdpi
,并将按其他密度放大。这意味着您的1024x1024位图被放大并作为2048x2048位图拉入(在大多数情况下,它比您可能需要的大得多)。所以,是的,你最好的办法是根据特定的密度,制作任意大小的图像,并在每个需要支持的可绘制文件夹中创建单独的图像


还需要注意的是,将图像设置为什么分辨率(您提到的300 ppi)并不重要,唯一重要的是像素尺寸。

讽刺的是,您使用的方法可能会使图像看起来更糟

将光栅图像放置在根可绘制文件夹中时,假定它们是
mdpi
,并将按其他密度放大。这意味着您的1024x1024位图被放大并作为2048x2048位图拉入(在大多数情况下,它比您可能需要的大得多)。所以,是的,你最好的办法是根据特定的密度,制作任意大小的图像,并在每个需要支持的可绘制文件夹中创建单独的图像


还要注意的是,将图像设置为什么分辨率(您提到的300 ppi)并不重要,唯一重要的是像素尺寸。

另一个解决方案是将图像设置为
drawable nodpi
folderTrue,如果图像的比例无关紧要,这是一个很好的解决方案。让我困惑的是,我不知道我需要支持什么密度。我正在使我的应用程序支持任何屏幕大小。所有对象的大小都是根据手机的屏幕大小计算的。所以我不知道我的图片应该是什么。这有意义吗?图像应该填充整个屏幕吗?背景图像填充整个屏幕,然后我有其他图像,它们的大小是根据屏幕的高度和宽度计算的。因此,当我计算出高度和宽度时,我会创建一个ImageView,并使用R.drawable.imagename id设置setImageResource。在我添加另一个图像之前,这工作正常,然后我开始出现内存溢出错误。另一个解决方案是将图像放入
drawable nodpi
folderTrue,如果图像的比例无关紧要,这是一个很好的解决方案。让我困惑的是,我不知道我需要支持什么密度。我正在使我的应用程序支持任何屏幕大小。所有对象的大小都是根据手机的屏幕大小计算的。所以我不知道我的图片应该是什么。这有意义吗?图像应该填充整个屏幕吗?背景图像填充整个屏幕,然后我有其他图像,它们的大小是根据屏幕的高度和宽度计算的。因此,当我计算出高度和宽度时,我会创建一个ImageView,并使用R.drawable.imagename id设置setImageResource。这工作正常,直到我添加了另一个图像,然后我开始出现内存溢出错误。