У меня есть TextView, который выровнен по правому краю в элементе списка. Его фон является привлекательным, что является просто овальным. Этот текст служит значком, и он должен быть кругом (равной ширине и высоте).Текст центра с динамическим размером TextView
достичь этого, выполнив следующий код:
textView.setText(badgeCount);
textView.measure(0, 0);
ViewGroup.LayoutParams params = textView.getLayoutParams();
int size = Math.max(textView.getMeasuredWidth(), textView.getMeasuredHeight());
params.width = size;
params.height = size;
badgesCountTextView.setLayoutParams(params);
Это работает только текст выравнивается по левому краю. Мой xml выглядит примерно так:
<RelativeLayout>
...
<TextView
android:id="@+id/badge_count_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:textSize="15sp"
android:textColor="@color/white"
android:layout_alignParentRight="true"
android:background="@drawable/black_circle"
tools:text="45"
android:gravity="center"/>
</RelativeLayout>
Как я могу разместить текст в моем представлении? Я не могу установить фиксированную ширину или высоту, потому что это необходимо установить динамически в зависимости от размера текста. Может кто-то указать мне верное направление?
Как я понимаю, вы изменяете размер текста, поэтому его фоновое изображение будет растянуто ... Вы используете 9patch? Если это так, убедитесь, что у вас есть правильные позиции содержания, поскольку это будет занимать центральное положение. И вы можете удалить наборы дополнений на xml, если вы скажете гравитационный центр. – yahya