嗨我有一个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);
它几乎是我想要的,但这封信仍然从中心左右跳跃
答案 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>