|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Duda con los layout
Hola,
Estoy intentando crear una activity que contenga una imagen y dos botones en la parte inferior para seleccionar o quitar la imagen. Estoy intentando crear dos linearlayout dentro de un linear, uno que contenta un imageview y otro que contenga los dos botones. De esta manera el imageview lo puedo poner a match parent dentro de su layout. El problema con el que me encuentro es que si pongo el layout de los botones en la parte superior con el atributo de la altura wrap_content y debajo el layout del imageview con match parent entonces me lo coloca bien, me muestra los dos botones en la parte superior y el resto del espacio lo ocupa el layout de la imagen. El probelma lo tengo si quiero que el layout de los botones esté debajo porque entonces el primer layout de la imagen ocupa todo el espacio aunque a mi enteder debería ocupar el hueco que queda al ser match_parent. Gracias |
|
#2
|
||||
|
||||
No veo claro tu distribución. Si nos has puesto atributos de altura máxima, el layout de ImageView va a ocupar todo el padre aunque pongas luego los botones, que quedarán fuera.
Yo pondría Código:
<LinearLayout horizontal> <ImageView> con el atributo heigth=0dp y weight <LinearLayout vertical> con el atributo heigth=0dp y weight <Button> <Button> |
#3
|
||||
|
||||
Hola oxot,
A lo que me refiero es más o menos a esto: Código:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button2" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:baselineAligned="false"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" /> </LinearLayout> </LinearLayout> Última edición por Walnow Día 23/01/15 a las 20:43:30. |
#4
|
||||
|
||||
No veo claro tu distribución. Si nos has puesto atributos de altura máxima, el layout de ImageView va a ocupar todo el padre aunque pongas luego los botones, que quedarán fuera.
Yo pondría Código:
<LinearLayout horizontal> <ImageView> con el atributo heigth=0dp y weight <LinearLayout vertical> con el atributo heigth=0dp y weight <Button> <Button> ![]() Código:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="16dp"> <ImageView android:layout_width="fill_parent" android:layout_height="0dp" android:id="@+id/imageView" android:src="@drawable/ic_launcher" android:layout_weight="90" android:layout_margin="20dp" android:background="@android:drawable/editbox_background_normal" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="10" android:layout_gravity="center_vertical"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_weight="0.5" android:layout_gravity="center_vertical" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button2" android:layout_weight="0.5" android:layout_gravity="center_vertical" /> </LinearLayout> </LinearLayout> |
#5
|
||||
|
||||
Entiendo lo que dices pero puedes arreglarlo fácilmente. Haces el layout de los botones como un wrap_content y así se ajustará su altura automáticamente y el ImageView le pones a la propiedad layout_weight="1" para que rellene el resto del layout.
Algo así: Código:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="match_parent" android:layout_height="0dp" android:id="@+id/imageView" android:src="@drawable/ic_launcher" android:layout_weight="1" android:background="@android:drawable/editbox_background_normal" /> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_gravity="center_vertical" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button2" android:layout_gravity="center_vertical" /> </LinearLayout> </LinearLayout> Te quedará algo así: |
#6
|
||||
|
||||
Gracias Oxot, es lo que quería. Pense que para usar la propiedad weight tenía que dar un porcentaje tanto a la imagen como también al layout de los botones pero con poner 1 el de los botones ya respeta su contenido.
También he intentado con relativelayout y consigo el efecto que quería pero no me fui del relativelayout por si trabaja en diferentes tamaños de pantalla y me la prepare. Código:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="false" android:id="@+id/linearLayout"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="aa" android:id="@+id/button3" android:layout_weight="0.5" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="bb" android:id="@+id/button4" android:layout_weight="0.5" /> </LinearLayout> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView2" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:src="@drawable/ic_launcher" android:padding="25dp" android:layout_above="@+id/linearLayout" android:contentDescription="aa" /> </RelativeLayout> |