2016-06-02 2 views
4

Добрый вечер,Кнопка с левой иконкой и текстом идеально выровнена

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

Я пытаюсь создать кнопки с иконкой и текстом, как на картинке ниже:

http://i.imgur.com/J5Cj1w4.png

А вот мой фактический результат:

http://i.imgur.com/VPALdDD.png

С помощью этого кода:

<Button 
     style="?android:textAppearanceSmall" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/sign_up_facebook" 
     android:text="@string/signup_with_facebook" 
     android:textColor="@color/primaryTextLight" 
     android:drawableLeft="@drawable/ic_facebook_box_white_24dp" 
     android:layout_weight="0" 
     android:background="@drawable/button_shape_login"/> 

    <Button 
     style="?android:textAppearanceSmall" 
     android:layout_marginTop="20sp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/sign_up_google" 
     android:text="@string/signup_with_google" 
     android:textColor="@color/primaryTextLight" 
     android:drawableLeft="@drawable/ic_google_plus_box_white_24dp" 
     android:layout_weight="0" 
     android:background="@drawable/button_shape_login"/> 

Я застрял на этом шаге.

Как я могу получить окончательный необходимый результат с помощью XML-кода?

Спасибо!

ответ

2

Использование Android: drawablePadding атрибуту

1

Вам нужно только указать android:paddingLeft атрибут.

Попробуйте указать значение 36dp, например

2

Лучшим вариантом является на самом деле сделать кнопку Родственник/Linear макета с макетом установлен внутри, drawablePadding не будет работать так хорошо с различными длинами текста и кнопок ,

По существу, RelativeLayout - это ваша кнопка с вложенным ImageView и TextView, и у вас будет хороший контроль над макетом, с последовательными прокладками вокруг изображений и текста внутри кнопки.

Я не проверял следующее, это по существу то, что вам нужно

<LinearLayout 
     android:id="@+id/facebookButton" 
     android:layout_width="250dp" 
     android:layout_height="80dp" 
     android:orientation="horizontal"> 
     <ImageView 
      android:src="@drawable/your_drawable" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="50dp"/> 
     <TextView 
      android:text="Sign up with Facebook" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="25dp"/> 
    </LinearLayout> 
0
android:gravity="center_vertical" 

// использовать как в TextView

Смежные вопросы