如何在两种不同模式下设置方向,两种布局?

我有一个名为Main.XML布局,我在AndroidManifest.xml中将方向设置为纵向。 我也为Honeycomb设计了这个布局并将其放在layout-xlarge-mdpi文件夹中,但是我想在横向方向上使用layout-xlarge-mdpilayout-xlarge-mdpi

现在,怎么办呢?

谢谢

您可以将main.xml放在layout-xlarge-land ,然后它将仅用于横向
请参阅支持多个屏幕(使用配置限定符)

Android支持多种配置限定符,允许您根据当前设备屏幕的特征控制系统如何选择备用资源。 配置限定符是一个字符串,您可以将其附加到Android项目中的资源目录,并指定其内部资源的设计配置。

编辑:如果你在layout文件夹中提供main.xml ,在layout-xlarge-land提供另一个main.xml ,那么

  • 对于一个extra large landscape orientation ,它将main.xml from layout-xlarge-land获取main.xml from layout-xlarge-land

  • 对于all other, that is in landscape or portrait orientation ,它将main.xml from layout获取main.xml from layout

有关详细信息,请参阅提供替代资源

创建一个layout-xlarge-mdpi-land文件夹并将main.xml放在其中

我想这可以这样做:

  1. 在onCreate中以编程方式检测屏幕尺寸。 http://www.mail-archive.com/android-developers@googlegroups.com/msg144381.html

  2. 根据屏幕大小设置方向,如下所示:

    if(屏幕大小很大)setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); else setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

不知道这是不是最好的方式。

在AndroidManifest中,在横向模式下要运行的任何活动中插入以下代码(在本例中为主要活动)

 android:screenOrientation="landscape"