我的文字是170.00美元'我想将此文本应用于TextView,如图所示。 怎么可能。??任何建议将不胜感激。 提前谢谢。
答案 0 :(得分:5)
1)从原始文本
创建SpannableString
SpannableString string = new SpannableString(originalText)
2)为SuperscriptSpan
符号设置RelativeSizeSpan
和$
string.setSpan(new SuperscriptSpan(), 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
string.setSpan(new RelativeSizeSpan((0.5f), 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
3)单独保留整数部分。
4)获取小数部分的索引并对其应用SuperscriptSpan
和RelativeSizeSpan
。
string.setSpan(new SuperscriptSpan(), originalText.lenght - 2, originalText.lenght - 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
string.setSpan(new RelativeSizeSpan((0.5f), originalText.lenght - 2, originalText.lenght - 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
5)将SpannableString
应用于TextView
textView.setText(string);
答案 1 :(得分:3)
尝试下面的内容。
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("<sup>$</sup>170<sup>00</sup>"));
sup
文字正在向上,而sub
文字正在下降。
答案 2 :(得分:1)
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以按如下方式布局XML ...
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/first_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/second_text"
android:text="$"
android:textSize="20sp" />
<TextView
android:id="@+id/second_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/first_text"
android:text="170"
android:includeFontPadding="false"
android:textSize="30sp" />
<TextView
android:id="@+id/third_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/second_text"
android:layout_toRightOf="@+id/second_text"
android:text="OO"
android:textSize="20sp" />
</RelativeLayout>