Ответ 1
Вам нужно объединить drawablePadding
и padding
, чтобы получить желаемый результат.
Я создаю 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
?
Вам нужно объединить drawablePadding
и padding
, чтобы получить желаемый результат.
В XML:
android: drawablePadding = paddingValue
или
Программный:
TextView txt;
txt.setCompoundDrawablePadding(paddingValue)
android: drawablePadding - это самый простой способ дать отступы для рисования значка, но вы не можете указывать конкретное одностороннее дополнение, например paddingRight или paddingLeft рисованной иконки. Это дает отступы по обе стороны от выталкиваемого.
Вы можете использовать список слоев.
До:
Создайте 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.