2015-05-19 91 views
-2

我該如何創建這個「$」? enter image description here如何創建這樣的文本?

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

搜索@Bidhan一個

enter image description here

+1

你指的是美元符號? –

+0

是的,它佔據線的上半部分 – ip696

+2

請參閱android.text.style.SuperscriptSpan – pskink

回答

0

您可以使用android:drawableLeftTextView這樣

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

我不認爲這是一個很好的決定。我不想用這個符號來切斷圖片,我希望有標準的解決方案。有時,在這種情況下,而不是圖標可以是整條線。它也使圖片? – ip696

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()的值。

我希望上面的作品適合你。

+0

酷!但文字上方的「$」應該處於同一水平。 – ip696

+0

這給你你想要的。你沒試過嗎? –

+0

是的,我試過了。作爲第二張照片,我得到了。我添加了這個問題。我需要在第一張圖片中,文本的上半部分的高度相同 – ip696

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));