Intereting Posts

Центрирование текста TextView по вертикали относительно его рисунка drawableLeft

У меня есть этот компонент:

<TextView android:id="@+id/item_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon" /> 

Изображение в атрибуте drawableLeft больше, чем шрифт текста, поэтому я хочу, чтобы текст был центрирован по вертикали относительно изображения. Как я могу получить этот эффект?

Solutions Collecting From Web of "Центрирование текста TextView по вертикали относительно его рисунка drawableLeft"

Вы хотите, чтобы «гравитация» означала, что это не следует путать с гравитацией макета, гравитация макета перемещает весь текст, а гравитация перемещает текст в текстовом виде.

 <TextView android:id="@+id/item_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon" android:gravity="center_vertical" /> 

В дополнение к настройке силы тяжести, это также может помочь в выравнивании в некоторых ситуациях, уменьшая прокладки сверху и снизу текста, что может быть неравным:

 android:includeFontPadding="false" 

Вы должны разместить как Drawable и TextView внутри RelativeLayout и использовать атрибут layout_alignBaseline в своем TextView .

Вы также можете разместить только два элемента: Drawable и TextView внутри LinearLayout с horizontal ориентацией и layout_height="wrap_content" и использовать layout_gravity="center_vertical" в вашем TextView .

Если вам не android:includeFontPadding="false" текстовые акценты, просто попробуйте android:includeFontPadding="false" Это позволит удалить дополнительное верхнее и нижнее дополнение TextView . Что касается android:gravity="center_vertical" , это не влияет на мой код.