在我的应用程序中,我有小型、正常和大型布局。最初,当我购买三星 Galaxy Note 时,它带有 android 2.3.3,我在三星 Galaxy Note 中测试了我的应用程序,当时它采用布局形式 layout-large 并且一切正常。
但是一旦我将我的设备更新到 android 4。它开始采用布局形式 layout-normal,因此我的一些页面对齐方式发生了变化。所以我想知道为什么会发生这种情况,有没有办法解决这个问题?
在我的应用程序中,我有小型、正常和大型布局。最初,当我购买三星 Galaxy Note 时,它带有 android 2.3.3,我在三星 Galaxy Note 中测试了我的应用程序,当时它采用布局形式 layout-large 并且一切正常。
但是一旦我将我的设备更新到 android 4。它开始采用布局形式 layout-normal,因此我的一些页面对齐方式发生了变化。所以我想知道为什么会发生这种情况,有没有办法解决这个问题?
我getResources().getConfiguration();
在onCreate
我的 .in 中玩了一下MainActivity
,发现该设备正在使用 400dp 的最小宽度,所以我将 Galaxy Note 的布局放在 layout-sw400dp文件夹中,它工作正常。设备上安装了 Android 4.0.3。
该设备仍在报告相同的显示指标。密度/屏幕宽度和高度没有改变。但是当您升级到 ICS (Android 4) 时,它开始将显示指标解释为普通尺寸的屏幕,而 Gingerbread (Android 2.3) 会说这些完全相同的显示指标是大尺寸屏幕。
解决这个问题的方法是针对三星 Galaxy Note 和其他属于这个奇怪类别的屏幕,创建一个名为:
layout-large-port-xhdpi-1280x800
并将您的大型或普通布局放入该资源中。这将强制您的三星 Galaxy Note 使用您喜欢的布局,并使用任一操作系统版本。
从 Android 3.2(API 级别 13)开始,尺寸组(layout-small、layout-normal、layout-large 和 layout-xlarge)已被弃用,您应该改用 sw<N>dp 配置限定符来定义可用的最小尺寸组布局资源所需的宽度。例如,如果您的布局需要至少 600dp 的屏幕宽度,则应将其放置在 layout-sw600dp/ 中。
参考:http: //developer.android.com/guide/practices/screens_support.html
您可以使用 layout-sw400dp-land 或 layout-sw400dp。
即使使用 Cianogenmod ROM,也适用于 Galaxy Note 1。