Выравнивание текста на кнопке - PullRequest
6 голосов
/ 11 марта 2011

Я создаю пользовательскую кнопку. Я хочу установить положение текста на кнопке.

  • У меня есть два фоновых изображения для кнопки (button_off и button_on): первое - для обычной кнопки, а второе - для состояния onFocus / onPressed.

enter image description here enter image description here

  • Теперь я должен поставить текст на кнопке, тогда он должен выглядеть так:

enter image description here enter image description here

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

Ответы [ 6 ]

3 голосов
/ 02 июля 2013

Вы можете установить эти свойства в файле XML, `

<Button
    android:id="@+id/button1"
    android:layout_width="120dp"
    android:layout_height="wrap_content"
    android:drawablePadding="5dp"
    android:drawableLeft="@android:drawable/ic_lock_lock"
    android:text="All" 
    android:gravity="center"/>

`

3 голосов
/ 11 марта 2011

Вы можете попробовать использовать изображение 9-патч в качестве фона.Подробнее об этом здесь: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

1 голос
/ 02 апреля 2013
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@android:drawable/arrow_down_float"
    android:background="@drawable/btn_all_bg"
    android:text="All">
 Button>

Вы можете использовать drawableLeft / right / top / bottom, чтобы добавить значок на кнопку, и текст будет автоматически корректироваться.

1 голос
/ 11 марта 2011

Выровняйте текст, используйте опцию гравитации!или попробуйте с отступом

0 голосов
/ 21 января 2015

Вы можете использовать раскладку в качестве кнопки style="@android:style/Widget.Button" и настроить ее по своему усмотрению.

Вставьте это в свой XML-файл:

<LinearLayout
android:id="@+id/button"
style="@android:style/Widget.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2dp"
    android:text="TextView" />

</LinearLayout>
0 голосов
/ 07 марта 2013

Несколько способов:

  1. определить кнопку и попробовать android:drawableStart
  2. расширить кнопку и нарисовать себя
  3. попытаться определить LinearLayout, который содержиттекст и изображение с фоном вашей кнопки, установите их вес 1 и поместите их в другой LinearLayout и сделайте их onClick, не могу гарантировать, что 3 будет работать без настройки или двух, но это стоит попробовать
...