5

The requirement for the app is that it should work on all devices. To support this I have

following layout defs-

layout/
layout-land/
layout-sw400dp-port/
layout-sw400dp-land/
layout-sw600dp-port/
layout-sw600dp-land/
layout-sw7200dp-port/
layout-sw7200dp-land/

its working fine for 7" and 10" tablets.

for the sw400dp devices ie 5" devices like Samsung Note etc, they are using layout/ and layout-land/. How can I force these devices to use layout-sw400dp-port/ and layout-sw400dp-land/

4

1 回答 1

1

你不能

原始 Note 运行 GingerBread (2.3),sw-标识符仅适用于 3.2 以上。

http://developer.android.com/guide/practices/screens_support.html#support

可用于提供特定于大小的资源的配置限定符有 small、normal、large 和 xlarge。例如,超大屏幕的布局应该放在 layout-xlarge/ 中。

从 Android 3.2(API 级别 13)开始,不推荐使用上述大小组,您应该改用 swdp 配置限定符

< 3.2 的设备将不使用-sw布局。要支持所有 API 级别,您需要使用两种类型的限定符来提供布局。

看看这篇文章: http ://android-developers.blogspot.co.uk/2011/07/new-tools-for-managing-screen-sizes.html

以前版本的平台将忽略使用新资源限定符的任何资源。那么,这是一种可行的方法:

res/layout/main_activity.xml           # For phones
res/layout-xlarge/main_activity.xml    # For pre-3.2 tablets
res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets
于 2013-07-12T09:27:25.533 回答