【问题标题】:Setting Android Activity screen orientation with values.xml使用 values.xml 设置 Android Activity 屏幕方向
【发布时间】:2012-11-30 09:56:46
【问题描述】:

我正在尝试使用 res/values 中 XML 文件中的值设置活动屏幕方向。我想这样做是因为,或多或少,我需要平板电脑(横向)和智能手机(纵向)使用相同的 Activity。

第一次尝试

清单:

<activity android:name="..." android:screenOrientation="@string/defaultOrientation"/>

config.xml:

<string name="defaultOrientation">portrait</string>

但使用此设置应用程序将不会出现在设备上,它会返回此错误:

java.lang.NumberFormatException: Invalid int: "portrait"

第二

好的,所以我简单地把它改成了这个

清单:

<activity android:name="..." android:screenOrientation="@integer/defaultOrientation"/>

config.xml:

<integer name="defaultOrientation">1</integer>

我使用 1 因为 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT == 1。

但这也不起作用。看来我可以修改一些值,例如应用程序/活动名称,但不能修改屏幕方向?

我知道我可以通过代码解决它,但出于某种原因,我觉得这也应该可以通过 XML 值文件获得。

有可能通过 XML 值来实现它吗?

【问题讨论】:

  • 您自己的答案实际上对我来说非常有效。 android:screenOrientation="@integer/defaultOrientation" 就好了。

标签: java android xml


【解决方案1】:

你的第二个解释对我来说也是同样的问题,我使用了你不想要的代码的解决方法。

我在 res 文件夹下添加了 4 个 values 文件夹。 “价值观”、“价值观-v11”、“价值观-v14”和“价值观-sw720dp”

所有值文件夹都有“integers.xml”。

“values”和“values-v14”的值为 1,即纵向;
&lt;integer name="portrait_if_not_tablet"&gt;1&lt;/integer&gt;

“values-v11”和“values-sw720dp”的值为2,即用户导向;
&lt;integer name="portrait_if_not_tablet"&gt;2&lt;/integer&gt;.

并且在 Manifest 文件中,活动具有类似的属性;
android:screenOrientation="@integer/portrait_if_not_tablet"

所有“values”、“values-v11”、“values-v14”都按预期工作,但“values-sw720dp”!

在调试时,我意识到 Portrait_if_not_tablet 的值在带有 getResources().getInteger(R.integer.portrait_if_not_tablet) 的 sw720dp 设备(使用 API 16)上符合预期,但是当我通过 getRequestedOrientation() 检查当前方向的值时,我得到了不同的值。

int requestedOrientation = getResources().getInteger(R.integer.portrait_if_not_tablet);
int currentOrientation = getRequestedOrientation();
if (currentOrientation != requestedOrientation) {
    setRequestedOrientation(requestedOrientation);
}

所以我在我的活动的 onCreate 方法上使用了一个代码块来解决这个问题。

【讨论】:

  • 添加一个名为 values-sw720dp-v14 的新文件夹,其中的 integers.xml 包含“2” t改变任何东西。
猜你喜欢
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多