2011-03-12 8 views
22

Estoy interesado en tener un diseño XML en Android dependiendo del paisaje o el retrato (y tal vez otras configuraciones más adelante).¿Es posible en Android definir constantes en XML que varían con la configuración?

<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" > 

En este ejemplo solo quiero variar el tamaño 150dip dependiendo horizontal o vertical, no cambia nada.

Estoy usando layout y layout-land, y sé que podría repetir el diseño en cada una de esas carpetas, pero eso hace que mantener los cambios en él sea un poco molesto. Cuando introduzco más variantes basadas en la densidad y el tamaño de la pantalla, empeora.

Por lo tanto, me preguntaba si es posible definir un valor (constante) en un archivo XML, y hacer referencia a ella de mi diseño, similar a cómo los colores pueden definirse

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

lo largo de las líneas de .. ....

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

Entonces podría simplemente reproducir ese archivo, con diferentes valores, en cada configuración.

gracias por cualquier ayuda

Respuesta

23

Sí. Una dimensión es un elemento aceptado en un archivo de recursos. Así que crea, p. res/values ​​/ dimension.xml y poner

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

sí se puede hacer esto, lo hacemos todo el lugar en sí mismo Android :) Sólo definir sus constantes en res/valores /, res/valores-tierra/etc Para las dimensiones , use la etiqueta y refiérase a ellos usando @ dimen/my_value en el diseño.

Cuestiones relacionadas