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

Я новичок в Android, и у меня проблема с выравниванием кнопок. Я пытаюсь выровнять некоторые кнопки, но не могу добиться точного результата, который хочу. Я предоставлю вам изображение результата, который я хочу получитьвведите описание изображения здесь

XML, который я создал, это `

<?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"
    android:layout_gravity="center"
    android:background="@drawable/bgmedium" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/button_medium"
        android:text="@string/come_to_us" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_alignRight="@+id/button1"
        android:layout_below="@+id/button1"
        android:background="@drawable/button_medium"
        android:text="@string/car_exhibition" />

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignRight="@+id/button2"
        android:layout_below="@+id/button2"
        android:background="@drawable/button_medium"
        android:text="@string/test_drive" />

    <Button
        android:id="@+id/button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button3"
        android:layout_alignRight="@+id/button3"
        android:layout_below="@+id/button3"
        android:background="@drawable/button_medium"
        android:text="@string/phone_contact" />

    <Button
        android:id="@+id/button5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button4"
        android:layout_alignRight="@+id/button4"
        android:layout_below="@+id/button4"
        android:background="@drawable/button_medium"
        android:text="@string/website" />

</RelativeLayout>

`

Но результат выглядит так

введите здесь описание изображения


person epapath    schedule 28.04.2014    source источник


Ответы (2)


Во-первых, я предлагаю использовать LinearLayout для этого экрана. Я буду проще с linearLayout. Вы можете использовать свойство гравитации внутри элементов кнопок, чтобы выровнять тексты кнопок по центру.

android:gravity="center"

Редактировать

Результат:

Результат

макет.xml

<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:background="@drawable/genel_background"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:paddingBottom="20dp"
    android:paddingLeft="20dp"
    android:paddingRight="20dp" >

    <Button
        android:id="@+id/button1"
        style="@style/GirisButton"
        android:text="Button1" >
    </Button>

    <Button
        android:id="@+id/button2"
        style="@style/GirisButton"
        android:text="Button2" >
    </Button>

    <Button
        android:id="@+id/button3"
        style="@style/GirisButton"
        android:text="Button3" >
    </Button>

    <Button
        android:id="@+id/button4"
        style="@style/GirisButton"
        android:text="Button4" >
    </Button>

    <Button
        android:id="@+id/button5"
        style="@style/GirisButton"
        android:text="Button5" >
    </Button>

</LinearLayout>

элемент стиля

 <style name="GirisButton">
        <item name="android:layout_marginTop">15dp</item>
        <item name="android:paddingTop">20dp</item>
        <item name="android:paddingBottom">20dp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:textSize">18sp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">@android:color/white</item>
        <item name="android:gravity">center_horizontal|center_vertical</item>
        <item name="android:background">@drawable/giris_button_combined</item>
        <item name="android:textColor">@android:color/white</item>
    </style>
person Göksel Güren    schedule 28.04.2014
comment
Я попробовал то, что вы предложили, но все же у меня странное мнение. Лучше по сравнению с предыдущим видом, но все же текст выровнен больше вправо. @Гёксель Гюрен - person epapath; 29.04.2014
comment
Я пишу код для тебя, братан. Я скоро поделюсь. - person Göksel Güren; 29.04.2014
comment
Спасибо, мужик! Я пытался использовать также DroidDraw, но безрезультатно. :( - person epapath; 29.04.2014
comment
Я попробую, мой друг, и я дам вам знать! Благодарю вас! - person epapath; 29.04.2014
comment
Спасибо, брат! Вы предоставили мне лучший обзор. Я постараюсь усерднее работать над проектным персоналом. Я больше занимался бэкэнд-разработкой, поэтому должен привыкнуть. - person epapath; 29.04.2014

Я считаю, что вам нужно добавить поля и/или отступы к каждой из кнопок, чтобы получить нужный макет, попробуйте следующее:

<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/button_medium"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="20dp"
    android:text="@string/come_to_us" />

<Button
    android:id="@+id/button2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button1"
    android:layout_alignRight="@+id/button1"
    android:layout_below="@+id/button1"
    android:background="@drawable/button_medium"
    android:text="@string/car_exhibition"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="20dp" />

<Button
    android:id="@+id/button3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button2"
    android:layout_alignRight="@+id/button2"
    android:layout_below="@+id/button2"
    android:background="@drawable/button_medium"
    android:text="@string/test_drive"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="20dp" />

<Button
    android:id="@+id/button4"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button3"
    android:layout_alignRight="@+id/button3"
    android:layout_below="@+id/button3"
    android:background="@drawable/button_medium"
    android:text="@string/phone_contact"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="20dp" />

<Button
    android:id="@+id/button5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button4"
    android:layout_alignRight="@+id/button4"
    android:layout_below="@+id/button4"
    android:background="@drawable/button_medium"
    android:text="@string/website"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="20dp" />

Android has guidelines for its UI that you can follow, this may help http://developer.android.com/guide/topics/ui/declaring-layout.html

person Ushal Naidoo    schedule 28.04.2014