如何创建这样的文字?

时间:2015-05-19 05:22:14

标签: android textview

我如何创建这个“$”? enter image description here

我甚至不知道它的名字是在谷歌搜索

@Bidhan A

enter image description here

3 个答案:

答案 0 :(得分:2)

这样做的一种方法如下:

TextView price= (TextView) findViewById(R.id.superscript);
price.setText(Html.fromHtml("<sup><small>$</small></sup>59.12"));

编辑:好的,如果你想让他们的上衣对齐,那么上面的方法对你不起作用。你将不得不做一些额外的工作。请执行以下操作

  1. 首先,创建一个新的Java文件并将其命名为SpanAdjuster.java。然后粘贴以下代码

     import android.text.TextPaint;
     import android.text.style.MetricAffectingSpan;
    
     public class SpanAdjuster extends MetricAffectingSpan {
     double ratio = 0.5;
    
     public SpanAdjuster() {
     }
    
     public SpanAdjuster(double ratio) {
      this.ratio = ratio;
     }
    
     @Override
     public void updateDrawState(TextPaint paint) {
       paint.baselineShift += (int) (paint.ascent() * ratio);
     }
    
     @Override
       public void updateMeasureState(TextPaint paint) {
     paint.baselineShift += (int) (paint.ascent() * ratio);
    }
    }
    
  2. 现在,在您的MainActivity中

    TextView price= (TextView) findViewById(R.id.price);
    SpannableStringBuilder cs = new SpannableStringBuilder("$59.12");
    //Make the dollar sign smaller that the rest of the text
    cs.setSpan(new RelativeSizeSpan(0.7f), 0, 1, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
    // Align it to the top
    cs.setSpan(new SpanAdjuster(1.6/5.0), 0, 1, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    price.setText(cs);
    
  3. 根据文字大小调整RelativeSizeSpan()和SpanAdjuster()内的值。

  4. 我希望上面的内容适合你。

答案 1 :(得分:0)

您可以像这样使用android:drawableLeft TextView

<TextView
       ...
        android:drawableLeft="@drawable/dollar_sign"
      ...
/> 

答案 2 :(得分:0)

是的,您可以使用以下示例执行此操作:

String styledText = "<small > <font size='10'  color='#1373CC'><b>"
            + "ABC " + "</b></font></small>" 
            + "<font size='30'  color='#1373CC'><b>" + "Testing" + "</b></font>";
    tv_textView.setText(Html.fromHtml(styledText));