0

我已经构建了一个基于 2.2 的应用程序。它工作正常并且运行良好。但是,当我将应用程序放在 4.0(分辨率为 1280x800 三星 Galaxy Note)上时。它崩溃并说它随机耗尽内存并且布局错误;无法修复大小

这是我的情况,我在 5 个活动中总共有大约 100 张图片(其中大部分是 .png 和 .jpg)(通常是 1 个背景图片,20 个带焦点的按钮背景图片和正常的一个),文件大小约为 2MB。

我在 xml 中设置图像和布局,例如相对布局背景或按钮背景或只是 imageview。

我想知道为什么它会耗尽内存,因为可绘制文件夹大小只有 2MB,为什么它会耗尽内存,为什么它在 2.2 上工作但在 4.0 上失败。

我希望有人能帮助我。

第一个问题是布局。例如,按钮尺寸比 2.2 中的要大。所以我担心它的缩放可能会影响内存问题。在我的按钮 xml 中,我将其设置为宽度和高度的 wrap_content。我不知道为什么它会比我预期的要大。我的想法是 4.0 中的布局 xml 存在一些差异,它会使布局变得奇怪或做一些缩放然后使内存变得奇怪。其实所有的图片都只有2MB,会不会内存不够呢?

第二个问题是内存。可能是内存处理与以前的版本不同。所以我需要做一些调整才能让它在 4.0 上工作吗?忽略布局问题,也许我可以进一步校准位置和大小。但是现在我无法显示布局,所以我猜想在 4.0 上可以做些什么?

最后,是否有可能找出每个 imageView 或按钮使用了多少内存?有了这个工具,也许可以进一步调查问题。

如果你有空,请帮助我。

4

1 回答 1

0

尝试将您的图像放在相应的可绘制文件夹中,例如 drawable-mdpi、drawable-hdpi 等。

如果您只有一个版本,请尝试将它们放入 drawable-nodpi。您可能需要根据您的布局设置方式选择将哪些放入 nodpi。

当 xhdpi 或 hdpi 设备从 drawable 或 drawable-mdpi 加载 drawable 时,系统会自动放大资源以匹配 dpi。从 mdpi 到 xhdpi,drawable 的大小将调整为 2 倍,mdpi 到 hdpi 的大小为 1.5 倍。

希望这可以帮助 :)

于 2012-05-22T05:13:43.340 回答