将不同大小的字符串/文本应用于TextView

时间:2014-03-27 08:56:39

标签: android textview

enter image description here

我的文字是170.00美元'我想将此文本应用于TextView,如图所示。 怎么可能。??任何建议将不胜感激。 提前谢谢。

5 个答案:

答案 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)获取小数部分的索引并对其应用SuperscriptSpanRelativeSizeSpan

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)

您可以使用SpannableString格式化TextView的内容:

SpannableString

或者您可以在水平LinearLayout中使用三个不同的TextView。

答案 3 :(得分:0)

它将通过spannable文本完成您想要做的事情。但我对跨文本不太了解。

spannable on android for textView

可能这可能会给你一些想法。

答案 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>