如何在android中为单个textview设置两种不同的大小

时间:2014-08-11 07:46:11

标签: android

  

在我的Android应用程序中,我需要在单个textview中设置两个不同的大小。我尝试过Spannable但工作不正常。我试过的是

String Amount = "Rs.109";                                     
Spannable Passspan = new SpannableString(Amount);
Passspan.setSpan(new RelativeSizeSpan(0.75f), 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12);   
txt.setText(Passspan);
  

我想要“Rs。”文本大小为10,其余为文本大小为15.金额的总数可能会有不同的大小,例如“Rs.109”,“Rs.1000”。指导我...

5 个答案:

答案 0 :(得分:3)

您可以尝试使用Html黑客,但它不是推荐的解决方案。

txt.setText(Html.fromHtml(String.format("<font size=\"10\">Rs.</font><font size=\"15\">%s</font>", amount)));

其中amount是数值。就像50,100,1000,......

建议的方法是在水平TextViews内使用两个LinearLayout

答案 1 :(得分:1)

尝试以下方法:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="12sp"
    android:text="Rs." />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:hint="Enter money" />

您也可以同时使用TextView。

答案 2 :(得分:1)

  

非常感谢你的支持人员...这有助于我在单一文本视图中获得两种不同的字体大小。

String Amount="Rs.109";
txt.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
Spannable span = new SpannableString(Amount);
span.setSpan(new RelativeSizeSpan(0.75f), 0, 3,       
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(span);  

答案 3 :(得分:0)

您可以在TextView中使用HTML:

txt.setText(Html.fromHtml(styledText)));

答案 4 :(得分:0)

使用下面的代码希望它可以帮助您快乐编码

String text = "<body><font size=3>Rs</font><font size=2>109</font></body>";
Spanned spanned1 = Html.fromHtml(text);
tvYourTextViewObject.setText(spanned1);