Android textview中心信

时间:2014-04-14 17:35:37

标签: android textview

嗨我有一个Textview,它总是只显示一个单词。

现在我需要始终以第二个字母为中心。这是有的:

String Word = "word";
int center = 2;
float measureText = textViewText.getPaint().measureText(word, 0, word.length()) / getResources().getDisplayMetrics().density;
float measureBeforeCenter = textViewText.getPaint().measureText(word, 0, center) / getResources().getDisplayMetrics().density;
float measureCenter = textViewText.getPaint().measureText(word, center, center + 1) / getResources().getDisplayMetrics().density;
textViewText.setPadding((int) (measureText / 2 - measureBeforeCenter - measureCenter / 2), 0, 0, 0);

它几乎是我想要的,但这封信仍然从中心左右跳跃

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用带有3个TextView的LinearLayout? 例如: [A] [B] [C]] A,B,C是textviews,其中B是wrap_content layout_width,A和C设置相同的宽度。 比处理更容易,而不是测量和绘画。

<LinearLayout       
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <TextView
    android:id="@+id/tv_A"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:gravity="right"
    />
    <TextView
    android:id="@+id/tv_B"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
    <TextView
    android:id="@+id/tv_C"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:gravity="left"
    />
</LinearLayout>