假设我有一个活动,在不同的资源文件夹中有三个不同的布局。例如:
layout-land/my_act.xml
layout-xlarge/my_act.xml
layout-xlarge-land/my_act.xml
在不同的设备和不同的位置,其中一个是由Android选择的。
我怎样才能知道哪一个是以编程方式选中的?
Android是否有任何API可以将这些布局返回给程序?
编辑:Graham Borland's solution在我在评论中提到的某些情况下有问题。
发布于 2012-07-26 21:32:25
您可以为每个支持的配置创建一个values-<config>
目录。在每个目录中,使用描述当前配置的单个selected_configuration
字符串创建一个strings.xml
。在运行时,使用标准的getString
方法获取字符串,该方法将为您执行配置解析并返回配置的正确字符串。这是未经测试的。
发布于 2012-06-26 18:20:00
您可以在每个不同的资源文件中的视图上设置不同的android:tag
属性,并在运行时使用View.getTag()
读回标记。
示例:
layout-xlarge-land/my_act.xml
<View
android:id="@+id/mainview"
android:tag="xlarge-landscape"
/>
layout-xlarge/my_act.xml
<View
android:id="@+id/mainview"
android:tag="xlarge-portrait"
/>
MyActivity.java
String tag = view.getTag();
if (tag.equals("xlarge-landscape") {
...
}
发布于 2012-07-04 01:04:56
你可以尝试重复这个算法"How Android Finds the Best-matching Resource" -它非常简单,特别是如果你只针对不同的屏幕有不同的布局。
https://stackoverflow.com/questions/11205020
复制相似问题