@mr-zherart

Как сделать центрирование drawable в button android?

Есть кнопка, которая занимает половину экрана по высоте, в нее нужно вставить иконку так, чтобы она центрировалась вместе с текстом посередине экрана.
<Button
	    android:id="@+id/readBtn"
	    android:layout_width="0dip"
	    android:layout_height="match_parent"
	    android:layout_weight="1"
	    android:background="@drawable/read_btn_selector"
	    android:drawableTop="@drawable/read"
	    android:gravity="center"
	    android:onClick="readBtnClick"
	    android:text="@string/read_btn"
	    android:textColor="#ffffff" />

Сейчас
899355a0e82e.jpg

Надо
87b7862309e1.jpg

Спасибо!
  • Вопрос задан
  • 3434 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ProkletyiPirat
сам недавно искал ответ на этот вопрос, не нашел.
Сделал так

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout
    android:id="@+id/myButton"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/selector_bottom_buttons"
    >

    <ImageView
        android:id="@+id/myButton_Image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:contentDescription="@string/text_btnKill"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"
        />

    <TextView
        android:id="@+id/myButton_Text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="Kill"
        />
</FrameLayout>


если размер кнопки строго фиксированный то можно сделать drawable из layer-list и внутри у картинки сделать отступ, но на мой взгляд FrameLayout более простой способ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы