Android, как программно добавить значок * и * текст к кнопке? - PullRequest
2 голосов
/ 16 августа 2011

Мне нужно добавить значок и некоторый текст для кнопки в коде (не в формате xml) в моем приложении для Android.

Значок (стоковый значок, "expander_open_holo_light.9.png") должен быть слева, а текст справа.

Я не могу найти никакой подсказки ...

Ответы [ 3 ]

9 голосов
/ 16 августа 2011

Посмотрите на setCompoundDrawableWithIntrinsicBounds ().Вы можете найти информацию здесь:

http://developer.android.com/reference/android/widget/TextView.html#setCompoundDrawablesWithIntrinsicBounds(int, int, int, int)

По сути, это способ установить свойство android: drawableLeft вашей кнопкипрограммно.

1 голос
/ 19 июня 2012

Возьмите TextView и установите ImageView в качестве фона. После настройки изображения добавьте к нему текст.Текст будет перемещен вправо.Надеюсь, это поможет.

1 голос
/ 16 августа 2011

Если вы не слишком много делаете с кнопкой (например, изменяете размер, создаете экземпляры нескольких из них), я просто создаю пользовательское представление XML с изображениями и текстовым представлением, расположенными рядом в контейнере.

Если вы часто меняете рисунок и текст, создайте собственный класс ImageView или Button.

EG textbutton.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/base"
     android:orientation="horizontal"
     android:layout_width="200dp"
     android:layout_height="100dp"
     android:gravity="center"
     android:background="#ff623466">

    <ImageView android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src="@drawable/icon"
        android:gravity="center"
    />

    <TextView android:id="@+id/text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="Hello!"
            android:gravity="center"
    />

</LinearLayout>

Затем опубликуйте эту строку в main.xml или любом другом макетеВы хотите кнопку:

<include layout="@layout/textbutton" />
...