【问题标题】:Android app 2.2 port to 4.0Android 应用 2.2 移植到 4.0
【发布时间】: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


【解决方案1】:

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

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

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

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2012-12-28
    • 1970-01-01
    相关资源
    最近更新 更多