0

我正在尝试根据设备是否小于 5 英寸并处于横向模式来动态更改 UI。如果可能的话,我不想使用 XML 布局,但这是迄今为止唯一可行的方法。有可能做我想做的事吗?

4

2 回答 2

1

如果您坚持使用代码来确定设备尺寸和方向,则可以使用公开各种设备配置变量的资源配置类。

在您的情况下,这是您需要的值:

getResources().getConfiguration().orientation
getResources().getConfiguration().screenWidthDp
getResources().getConfiguration().screenHeightDp

请注意,强烈建议使用提供的文件夹命名约定来根据设备方向更改应用程序 UI。如果您也合并片段,那么您可以实现更简单、更易于维护的代码。

于 2013-11-10T20:10:45.263 回答
0

最好的办法是利用 android 内置的配置限定符。您可以在此处找到有关它们的更多信息:

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

如果您向下滚动到使用配置限定符部分,您将看到可以使用的文件夹扩展列表。这些文件夹中的这些文件会覆盖没有扩展名的文件夹中匹配文件的部分。

IE。

可以在 values-land-small 文件夹中的 dimens.xml 中设置一个布尔值,这将覆盖存储在 values 文件夹中的 dimens.xml 文件中的相应布尔值。然后,您可以在代码中使用此布尔值来定位特定设备和特定配置,而无需直接使用多个 xml 布局。

于 2013-11-10T19:31:09.407 回答