Кнопка с текстом и изображением (Android) - PullRequest
9 голосов
/ 22 июля 2011

Я хочу создать кнопку Android с изображением и текстом, но текст автоматически центрируется.Как разместить текст внизу кнопки?

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

Ответы [ 6 ]

43 голосов
/ 22 июля 2011

Вы можете указать, где на кнопке вы хотите назначить изображение (Я предполагаю, что у вас уже есть изображение на кнопке):

<Button
   android:id="@+id/button"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="- I'm a Button -"
   android:drawableTop="@drawable/icon"
   />

Вы также можете установить отступ между текстом и изображением с помощью Android: drawablePadding (int)

Атрибут drawableTop можно изменить на drawableRight, Left, Bottom и т. Д. Удачи!

4 голосов
/ 15 мая 2014

Вы также можете сделать это

enter image description here

<LinearLayout
android:id="@+id/image_button_2"
style="@android:style/Widget.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dp"
    android:src="@drawable/ic_gear" />

<TextView
    android:id="@+id/image_button_2_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/black"
    android:text="Button 2" />

    </LinearLayout>

В вашей деятельности

 final View button2 = findViewById(R.id.image_button_2);
 button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
4 голосов
/ 22 июля 2011

На вашем месте я бы просто не использовал кнопку.Используйте LinearLayout или RelativeLayout и просто задайте ему фон кнопки (подсказка: используйте селектор, если вы хотите, чтобы он имел разные изображения для каждого состояния) и поместите в него свой TextView, затем вы можете использовать атрибуты drawableLeft, drawableTop и т. Д.поставить картинку на ту сторону, которую вы хотите.Если вы хотите получить более высокий уровень контроля относительно того, куда изображение относится к тексту, используйте один TextView и один ImageView.Затем в вашей java просто получите ссылку на ваш макет и обработайте его так же, как если бы вы использовали кнопку, с помощью setOnClickListener ().

1 голос
/ 07 октября 2015

enter image description here

<Button
        android:layout_width="0dp"
        android:layout_weight="1"
        android:background="@drawable/home_button"
        android:drawableLeft="@android:drawable/ic_menu_edit"
        android:drawablePadding="6dp"
        android:gravity="left|center"
        android:height="60dp"
        android:padding="6dp"
        android:text="AndroidDhina"
        android:textColor="#000"
        android:textStyle="bold" />

для получения дополнительной информации http://androiddhina.blogspot.in/2015/09/how-to-add-image-inside-button.html

0 голосов
/ 12 марта 2014

Я думаю, что самый простой способ достичь этого (с использованием чистого XML):

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickMethod" 
        android:orientation="vertical" 
        android:clickable="true">
   <ImageView
        android:src="@drawable/YOUR_DRAWABLE"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:clickable="false"/>
   <TextView
         android:text="@string/YOUR_TEXT"  
         android:layout_width="match_parent"
         android:layout_height="wrap_content"           
         android:clickable="false"/>
</LinearLayout>
0 голосов
/ 22 июля 2011

Вы можете попробовать что-то вроде этого

<Button
    android:id="@+id/ButtonTest"
    android:text="this is text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/icon"
    **android:gravity="bottom"**/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...