【发布时间】:2015-05-20 04:32:28
【问题描述】:
我有一个在列表项中右对齐的 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 上的填充集。
标签: android