【问题标题】:How to support all screens?如何支持全屏?
【发布时间】:2014-03-22 20:00:05
【问题描述】:

我为 Android 制作了一个应用程序,并且我正在尝试让它在所有可能的设备上运行。

为此,我创建了具有不同密度(ldpi、mdpi、hdpi、xhdpi)的不同布局(小、普通、大、xlarge),但是当我加载范围为layout-normal-xhdpi 的模拟器时,应用程序不会t 启动并进行退出异常(强制关闭)。对于所有其他布局,它都能完美运行。

应该是什么?

我正在使用minSDK = "8",但我也尝试了更高的 API,但仍然无法正常工作。我也用4级以下的API进行了测试,效果很好(这些API的问题不支持所有分辨率)。

【问题讨论】:

标签: android layout screens


【解决方案1】:

您可以提供替代资源(可绘制对象)和布局(以及用于区域支持的语言)。支持多屏请参考android开发者指南,特别是android如何选择提供的资源here部分。

还提供了解释here,只需滚动页面即可清楚地了解该主题。

【讨论】:

  • 我创建了替代布局,但问题仍然存在。仅对于此类分辨率(640x960、320 密度或 1280x720、320 密度),应用程序会崩溃并强制关闭。
  • 我认为您的问题可能在于您提供的资源。确保为适当的尺寸提供所有可绘制对象。这是android网站的摘录。 ** "警告:如果你的所有资源都使用了大于当前屏幕的尺寸限定符,系统将不会使用它们并且你的应用程序将在运行时崩溃(例如,如果所有布局资源都使用 xlarge 限定符进行标记,但是设备是普通尺寸的屏幕)。"**
  • 我们在清单中指定了:anyDensity = "false"。我想如果我们将该命令放入清单中,会自动将文件夹“drawables”中的可绘制对象的大小调整为所有其他分辨率(ldpi、mdpi、hdpi、xhdpi)。然后我们要在manifest中输入命令:anyDensity = "true" 并创建必要的文件夹(drawable-ldpi、drawable-mdpi、drawable-hdpi和drawable-xhdpi)?
【解决方案2】:

以下是您日志中的一些选择行,告诉您发生了什么:

09-05 15:10:34.941: E/dalvikvm-heap(453): 9523200 字节的外部分配对于这个进程来说太大了。

和:

09-05 15:10:35.112:E/AndroidRuntime(453):原因:java.lang.OutOfMemoryError:位图大小超出 VM 预算

您的位图非常大(特别是大约 9MB)并且内存不足。使用一些较小的位图。

【讨论】:

    【解决方案3】:

    只需将这些代码行放在您的清单文件中即可:

    <supports-screens android:largeScreens="true"
    android:normalScreens="true" android:smallScreens="true"
    android:anyDensity="true" />
    

    【讨论】:

    • 我所有的都是“真”,我创建了 layout-small-ldpi、layout-small-hdpi、layout-normal-ldpi、layout-normal-mdpi、layout-normal-hdpi、layout -normal-xhdpi、layout-large-ldpi、layout-large-mdpi、layout-xlarge-ldpi、layout-xlarge-mdpi、layout-xlarge-hdpi.... 所有的布局都可以正常工作,但是当我使用具有属于 layout-normal-xhdpi 的分辨率和密度的模拟器,应用程序强制关闭...
    • @user1649287 你 logCat 怎么说。
    • 09-05 15:10:32.421: D/dalvikvm(453): GC_EXTERNAL_ALLOC 释放 42K,53% 释放 2556K/5379K,外部 2730K/3266K,暂停 240ms 09-05 15:10:33.112 : D/dalvikvm(453): GC_EXTERNAL_ALLOC 释放 1K, 53% 空闲 2555K/5379K, 外部 6449K/8053K, 暂停 60ms 09-05 15:10:34.231: D/dalvikvm(453): GC_EXTERNAL_ALLOC 释放 pastebin.com/jFmFTNsT
    猜你喜欢
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多