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

Respuesta
 
Herramientas
  #1  
Viejo 23/01/15, 19:51:12
Array

[xs_avatar]
Walnow Walnow no está en línea
Usuario novato en la web
 
Fecha de registro: nov 2014
Mensajes: 15
Modelo de smartphone: Galaxy S4
Tu operador: Movistar
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
Responder Con Cita


  #2  
Viejo 23/01/15, 20:26:53
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
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>
Responder Con Cita
  #3  
Viejo 23/01/15, 20:40:10
Array

[xs_avatar]
Walnow Walnow no está en línea
Usuario novato en la web
 
Fecha de registro: nov 2014
Mensajes: 15
Modelo de smartphone: Galaxy S4
Tu operador: Movistar
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>
Lo que quiero hacer es que tenga el hueco de toda la activity menos la parte de los botones que están debajo para la imagen. El layout de ejemplo me pone los botones arriba y el resto lo ocupa la activity de la imagen. Si cambio el orden de los layout no debería de ser lo mismo al decir que el layout de la imagen es match_parent?

Última edición por Walnow Día 23/01/15 a las 20:43:30.
Responder Con Cita
  #4  
Viejo 23/01/15, 20:55:38
Array

[xs_avatar]
Walnow Walnow no está en línea
Usuario novato en la web
 
Fecha de registro: nov 2014
Mensajes: 15
Modelo de smartphone: Galaxy S4
Tu operador: Movistar
 Cita: Originalmente Escrito por oxot Ver Mensaje
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>
supongo que te refieres a algo como 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"
    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>
Lo que no me cuadra es la utilización del weight como en este caso 90 / 10 porque en vez del 10 me gustaría solamente usar la altura de los botones para el layout. Además de esta manera al cambiar la configuración entre un telefono y una tablet no se distorsionan los botones?
Responder Con Cita
  #5  
Viejo 24/01/15, 01:27:23
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
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>
Por cierto, fill_parent está desaconsejado a partir de la API 8, vamos, desde tiempos de maria castaña. Ahora deberías usar match_parent.
Te quedará algo así:
Imágenes Adjuntas
Tipo de Archivo: png Sin título.png (151.5 KB, 14 visitas)
Responder Con Cita
  #6  
Viejo 24/01/15, 09:13:58
Array

[xs_avatar]
Walnow Walnow no está en línea
Usuario novato en la web
 
Fecha de registro: nov 2014
Mensajes: 15
Modelo de smartphone: Galaxy S4
Tu operador: Movistar
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>
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 11:54:25 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /