是否有可能在android中定义XML的常量随configuration而变化

我感兴趣的是Android中的XML布局会根据横向或纵向查看(以及其他configuration)更改大小。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_alignParentBottom="true" android:background="@drawable/stream_bg_1px_wide" android:layout_height="150dip" > 

在这个例子中,我只是想根据风景或肖像来改变150dip大小,而不是改变其他任何东西。

我正在使用layout和layout-land,而且我知道我可以在每个文件夹中重复布局,但是这使得维护上的变化有点痛苦。 当我根据屏幕密度和大小推出更多变体时,情况会变得更糟。

所以,我想知道是否可以在XML文件中定义一个值(常量),并从我的布局中引用它,类似于如何定义颜色

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="shopper_background"> #FFFFFF</color> </resources> 

沿着……的方向

 <?xml version="1.0" encoding="utf-8"?> <resources> <value name="footer_size" >150</value> </resources> 

然后,我可以在每个configuration中复制该文件,使用不同的值。

谢谢你的帮助

Solutions Collecting From Web of "是否有可能在android中定义XML的常量随configuration而变化"

是。 维度是资源文件中的可接受项目。 所以创build例如res / values / dimension.xml并放

 <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="footer_size" >150dp</dimen> </resources> 

是的,你可以做到这一点,我们在Android本身的所有地方做:)只要在res / values /,res / values-land /等中定义你的常量。对于尺寸,使用标签并使用@dimen / my_value在布局中。