Problema layouts android

eimdal

Tengo un problema con un layout, el layout es un dibujo de un menú principal con unos huecos en el dibujo para poner los botones, pero dependiendo del tamaño de la pantalla los botones se ponen en sitios diferentes. Hay alguna forma de que se auto adapten para que salgan donde deben sin importar la pantalla?

Gollumiko

¿Qué tipo de layout estás utilizando?

Si pones el XML del layout te podremos ayudar más.

eimdal
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/mainmenu" >

<Button
    android:id="@+id/button2"
    android:layout_width="396dp"
    android:layout_height="71dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/button1"
    android:layout_marginBottom="25dp"
    android:layout_marginLeft="388dp"
    android:layout_marginTop="34dp"
    android:textColor="@color/text_color"
    android:text="@string/scores" />

<Button
    android:id="@+id/button4"
    android:layout_width="396dp"
    android:layout_height="71dp"
    android:layout_alignLeft="@+id/button3"
    android:layout_alignRight="@+id/button3"
    android:layout_below="@+id/button3"
    android:layout_marginBottom="63dp"
    android:layout_marginTop="35dp"
    android:text="@string/exit"
    android:textColor="@color/text_color" />

<Button
    android:id="@+id/button1"
    android:layout_width="396dp"
    android:layout_height="71dp"
    android:layout_alignLeft="@+id/button2"
    android:layout_alignParentTop="true"
    android:layout_marginTop="213dp"
    android:text="@string/init_game"
    android:textColor="@color/text_color" />

<Button
    android:id="@+id/button3"
    android:layout_width="396dp"
    android:layout_height="71dp"
    android:layout_alignLeft="@+id/button2"
    android:layout_below="@+id/button2"
    android:text="@string/options"
    android:textColor="@color/text_color" />

</RelativeLayout>
zoeshadow

Es muy difícil hacer los layouts así, tendrás que seguir otra estrategia...

Lo ideal sería que cada imagen fuera individual y no dependieras de que todas "encajen" en una, porque sino te va a ser imposible que encajen...

1 respuesta
Gollumiko

No termino de entender como quieres que quede el menú con los botones. ¿Podrías hacer algún boceto con paint mismo para saber cuál debería ser el aspecto final?

En este caso, y suponiendo que quieres que los botones aparezcan siempre siguiendo un porcentaje del tamaño de la pantalla, la solución puede ser utilizar LinearLayouts, pero también puede ser bastante difícil hacer que encaje todo donde debería, como dice #4.

eimdal


La imagen es esta, y dentro de los huecos quiero poner unos botones

1 respuesta
Dostoievski

#6 Lo llevas crudo xD. Yo hice un layout que metía margenes por porcentajes y aun así no quedan bien dependiendo del diseño. De todas formas tu problema es que tienes mal hecho el diseño. Si eso es el background, el diseño de los botones tiene que ir en los botones y el background ser uniforme.

Por ejemplo, el layout principal con un background con la textura de marmol. Éste layout contiene el título y debajo otro layout con la textura de madera y este último layout contiene a su vez los botones centrados y pegados arriba.

1 1 respuesta
Gollumiko

Como dice #7, en vez de hacer un fondo de la aplicación con una imagen y tratar de poner los botones encima, intenta dibujar el menu desde el layout utilizando las texturas que quieras como fondo de cada uno de los componentes. De esa manera conseguirás que se adapte a cada pantalla de una forma más fácil.

eimdal

Al final he conseguido solucionarlo mas o menos, pero ahora tengo otro problema, quiero que cada vez que arrastre el dedo cambie de background el layout, y pruebo con

layout.setBackgroundResource(R.drawable.nombre_imagen);

Pero no hace nada, alguien sabe como hacerlo?

Usuarios habituales

  • eimdal
  • Gollumiko
  • Dostoievski
  • zoeshadow