android - 是否可以根据设备是否处于横向与纵向模式以及设备的大小来改变行为?

时间:2013-11-10 19:23:05

标签: android android-ui

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

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

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

IE。

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