Выравнивание кнопок в Android

У меня есть приложение в Android, где 6 ImageButtons должны быть автоматически выровнены (одинаково): 3 сверху и 3 снизу.

Я попробовал это:

<ImageButton
    android:id="@+id/imageButton2"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:background="@color/Black"
    android:contentDescription="@string/getting_started"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton2"
    android:src="@drawable/gettingstarted" />

<ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/imageButton2"
    android:background="@color/Black"
    android:contentDescription="@string/introduction"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton1"
    android:src="@drawable/introduction" />

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/imageButton2"
    android:background="@color/Black"
    android:contentDescription="@string/get_going"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton3"
    android:src="@drawable/getgoing" />

Я хотел бы иметь это на скриншоте ниже

5 ответов

Решение

Попробуй это. Внесите изменения в название изображения и описание в соответствии с вашими требованиями.

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal" >

   <ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/Black"
    android:contentDescription="@string/getting_started"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton1"
    android:src="@drawable/gettingstarted" />

<ImageButton
    android:id="@+id/imageButton2"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/Black"
    android:contentDescription="@string/introduction"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton2"
    android:src="@drawable/introduction" />

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/Black"
    android:contentDescription="@string/get_going"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton3"
    android:src="@drawable/getgoing" />

</LinearLayout>

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal" >

   <ImageButton
    android:id="@+id/imageButton4"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/Black"
    android:contentDescription="@string/getting_started"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton4"
    android:src="@drawable/gettingstarted" />

<ImageButton
    android:id="@+id/imageButton5"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/Black"
    android:contentDescription="@string/introduction"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton5"
    android:src="@drawable/introduction" />

<ImageButton
    android:id="@+id/imageButton6"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/Black"
    android:contentDescription="@string/get_going"
    android:scaleX="0.7"
    android:scaleY="0.7"
    android:onClick="imageButton6"
    android:src="@drawable/getgoing" />

</LinearLayout>

Попробуйте это, я использовал кнопку вместо кнопки изображения, вы можете изменить его на кнопку изображения

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
      >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:orientation="horizontal"
        android:layout_weight="1">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" 
        android:layout_gravity="center"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
         android:layout_gravity="center"
         android:layout_weight="1" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
         android:layout_gravity="center" 
         android:layout_weight="1"/>

   </LinearLayout>

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:orientation="horizontal"

    android:layout_weight="1">
        <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" 
        android:layout_gravity="center"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
         android:layout_gravity="center"
         android:layout_weight="1" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
         android:layout_gravity="center" 
         android:layout_weight="1"/>
     </LinearLayout>

  </LinearLayout>

Попробуй это..

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:contentDescription="@string/getting_started"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:onClick="imageButton2"
            android:src="@drawable/gettingstarted" />

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:contentDescription="@string/introduction"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:onClick="imageButton1"
            android:src="@drawable/introduction"  />

        <ImageButton
            android:id="@+id/imageButton3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:contentDescription="@string/get_going"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:onClick="imageButton3"
            android:src="@drawable/getgoing" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:contentDescription="@string/getting_started"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:onClick="imageButton2"
            android:src="@drawable/gettingstarted"  />

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:contentDescription="@string/introduction"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:onClick="imageButton1"
            android:src="@drawable/introduction" />

        <ImageButton
            android:id="@+id/imageButton3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:contentDescription="@string/get_going"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:onClick="imageButton3"
            android:src="@drawable/getgoing" />
    </LinearLayout>

</LinearLayout>

Ты можешь использовать что-то вроде

  LinearLayout [вертикальный]
         |
         |
          LinearLayout [Горизонтально]
                  |
                  |
                   Ваши 3 кнопки с весом ="1"

          LinearLayout [Горизонтально]
                  |
                  |
                   Ваши 3 кнопки с весом = "1"

Вы можете использовать 2 LinearLayouts с горизонтальной ориентацией. Эти два LinearLayout размещены в другом LinearLayout с вертикальной ориентацией.

<LinearLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">

        <ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:background="@color/Black"
android:contentDescription="@string/getting_started"
android:scaleX="0.7"
android:scaleY="0.7"
android:onClick="imageButton2"
android:src="@drawable/gettingstarted" />

 <ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toLeftOf="@+id/imageButton2"
android:background="@color/Black"
android:contentDescription="@string/introduction"
android:scaleX="0.7"
android:scaleY="0.7"
android:onClick="imageButton1"
android:src="@drawable/introduction" />

<ImageButton
android:id="@+id/imageButton3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/imageButton2"
android:background="@color/Black"
android:contentDescription="@string/get_going"
android:scaleX="0.7"
android:scaleY="0.7"
android:onClick="imageButton3"
android:src="@drawable/getgoing" />

   </LinearLayout>

Вы можете присвоить ImageButtons вес 1 и ширину 0dp, чтобы они автоматически занимали 1/3 ширины.

Другие вопросы по тегам