Android TextView можно использовать, изменить пробел между drawable и text?

Я создаю TextView с возможностью рисования внизу, в GridLayout.

Я хочу привести к растягиванию до середины TextView; Я попытался с setCompoundDrawablePadding(-75), и это только изменяет положение текста.

Текущий код:

    TextView secondItem = new TextView(this);
    GridLayout.LayoutParams second = new GridLayout.LayoutParams(row2, col1);
    second.width = halfOfScreenWidth;
    second.height = (int) (quarterScreenWidth * 1.5);
    secondItem.setLayoutParams(second);
    secondItem.setBackgroundResource(R.color.MenuSecond);
    secondItem.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, R.drawable.ic_action_new);
    secondItem.setText("Text");
    secondItem.setCompoundDrawablePadding(-180);
    secondItem.setGravity(Gravity.CENTER);
    secondItem.setTextAppearance(this, android.R.style.TextAppearance_Large_Inverse);
    gridLayout.addView(secondItem, second);

Как установить текст и вывести его в середину TextView?

Ответ 1

Вам нужно объединить drawablePadding и padding, чтобы получить желаемый результат.

Ответ 2

В XML:

android: drawablePadding = paddingValue

или

Программный:

TextView txt;

txt.setCompoundDrawablePadding(paddingValue)

android: drawablePadding - это самый простой способ дать отступы для рисования значка, но вы не можете указывать конкретное одностороннее дополнение, например paddingRight или paddingLeft рисованной иконки. Это дает отступы по обе стороны от выталкиваемого.

Ответ 3

Вы можете использовать список слоев.

До:

введите описание изображения здесь

Создайте xml для shape - shape_rectangle.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="5dp">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="@color/my_color" />
        <size
            android:width="5dp"
            android:height="5dp" />
    </shape>
</item>
</layer-list>

После:

введите описание изображения здесь

В xml есть что-то вроде android:right. Вы также можете добавить top, left, bottom. Таким образом, вы можете указать, например: padding left и right to drawable без изменения общей высоты textView.