【发布时间】:2012-05-04 13:26:25
【问题描述】:
我已经构建了一个基于 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 或按钮使用了多少内存?有了这个工具,或许可以进一步调查问题。
如果你有空,请帮帮我。
【问题讨论】:
-
你在模拟器上运行了吗?或任何移动设备?
-
这是 android 的一个主要缺点,图像主要支持低于 1mb 的安全。但是您可以通过 BitmapFactory 调整图像大小
-
可以在DDMS中查看垃圾和堆回收
-
谢谢。我已经解决了这个问题。原因是 ICS 无法使用 2 个参数确定正确的可绘制文件夹,所以我已更改为一个参数,它工作正常。
标签: android image memory layout