繁体   English   中英

平板电脑的肖像(Android-Layout)

[英]Portrait for phone, landscape for Tablet (Android-Layout)

所以我正在为Android制作应用程序,我想强制平板电脑的横向定位和手机的纵向定位。 然而,似乎我只能从我所看到的方向进行定位锁定,这会使想要两个单独的设备方向的目的失败。

平板电脑:风景电话:肖像

更具技术性。

我在“res / layout-xlarge-land”中有一个用于在平板电脑上进行美化的布局,我在“res / layout”中有原始布局,我只想明确地使用layout-xlarge-land作为平板电脑。 没有别的,基本上只使用xlarge设备的横向。

谢谢!

根据设备密度设置特定方向可能不起作用,因为有些手机的密度比平板电脑高。

我所做的是通过在清单文件中的activity标记中设置属性来禁用设备的方向传感器,如下所示:

android:screenOrientation="nosensor"

当您运行应用程序时,默认情况下为手机设置纵向方向,为平板电脑设置横向(因此它将从layout-xlarge-land选择xml文件)。 由于您已设置方向锁定,因此它仍处于此方向。

您可以测量设备的实际大小(以英寸为单位),然后使用以下方式以编程方式设置方向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

要么

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

要获得设备的物理大小,您可以使用此处发布的代码。

它不是100%准确,但它足以决定设备运行应用程序的王者。

我不完全确定你在说什么,但看起来你应该只测量分辨率并采取相应的行动。 我的意思是,除了分辨率不同之外,你怎么知道它是手机还是平板电脑?

在“layout-large”文件夹布局中的布局菜单上设置名为llTablet的布局,在“layout”文件夹中的布局菜单上设置llPhone布局。 通过菜单参考用户正在进入的第一个布局。 然后检查您是否可以参考它。 如果你不能参考llPhone那么它的平板电脑。

llPhone = (LinearLayout) findViewById (R.id.llPhone)
if (llPhone == null) {
 tablet = true;
}
else {
 tablet = false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM