2011-07-08 8 views
6

Tengo un diseño con dos ImageView adentro. Cada imagen tiene una relación de aspecto fija, por ejemplo, la primera imagen es de 320x160, la segunda es de 320x320. El diseño está alineado verticalmente. Quiero que estas dos imágenes se peguen entre sí y se escalen para que quepan en uno de los lados de la pantalla (ancho o alto) y se escale el otro lado de forma proprotional. Intenté usar scaleType = fitCenter, pero el problema es que en diferentes teléfonos con diferente relación de aspecto, las imágenes no están juntas, hay un área negra entre ellas. Parece que no puedo usar diseño: peso porque las pantallas tienen una relación diferente (480x854 y 480x800) y necesito que mi diseño se mantenga en la misma proporción escalada.escala de diseño de Android con relación de aspecto fija en diferentes teléfonos

Cualquier ayuda es apreciada.

Aquí es mi diseño por ahora:

<LinearLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<ImageView android:src="@drawable/im_menu" 
android:adjustViewBounds="true" 
android:scaleType="fitCenter" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal|top" 
android:layout_weight="0.7" 
> 
</ImageView> 
<ImageView android:src="@drawable/im_field" 
android:adjustViewBounds="true" 
android:scaleType="fitCenter" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal|top" 
android:layout_weight="0.3" 
> 
</ImageView> 
</LinearLayout> 

Respuesta

2

Usted puede utilizar el peso diseño con valores relativos también. Por ejemplo, si quiere un campo con un 30% y otro con un 70%, simplemente configure el peso de vista de los niños con 0.3 y 0.7, y no especifique el ancho ni la altura en los niños. Se explica en la (sección de la punta) guía para desarrolladores:

developer guide - linear layout

También puede que tenga que utilizar RelativeLayout en lugar de LinearLayout.

+0

Una vez más, el efecto es el mismo. Como traté de explicar, no puedo usar tamaños de padres porque en la proporción de 480x800 = 1.66 y en la relación de 480x854 = 1,77, pero necesito mantener el diseño siempre en relación de 1.5 y llenar el tamaño más bajo de la pantalla. –

+0

@Northern Captain: No use valores absolutos en píxeles, pruebe los valores relativos como le dije anteriormente. La parte de alineación no es alcanzable solo con el peso, debe mirar a la gravedad o usar RelativeLayout para ajustarse a sus requisitos. –

+0

Si elimino layout_width y height de los niños, desaparecen. –

6

que puede utilizar:

android:adjustViewBounds="true" 

y establecer fill_parent a la altura de, por ejemplo,

<ImageView 
... 
android:layout_height="fill_parent" 
...> 

adjustViewBounds para más detalles

Cuestiones relacionadas