2015-12-10 47 views
0

切割[enter image description here使用兩個不同的字體不同的文本樣式文本從邊緣

如果我使用單一類型的字體其做工精細文本不從edges.But切割的時候我試圖用不同的兩種不同的字體文本樣式,然後從Textview中的邊緣切割文本。

Typeface tfNormal = Typeface.createFromAsset(ctx.getAssets(), "fonts/futura_tee.ttf"); 
Typeface tfBold = Typeface.createFromAsset(ctx.getAssets(), "fonts/futura_tee_bold.ttf"); 

String msg="tournament sopan 20 nov offline double 2 was updated"; 
SpannableStringBuilder sb = new SpannableStringBuilder(); 

     final String t_name = "sopan 20 nov offline double 2"; 
     int startindex = msg.indexOf(t_name); 
     int endindex = startindex + t_name.length(); 

     ClickableSpan clickableSpan = new ClickableSpan() { 
      @Override 
      public void onClick(View textView) { 
       //some click event 
      } 

      @Override 
      public void updateDrawState(TextPaint ds) { 
       ds.setUnderlineText(false); 
       ds.setColor(ctx.getResources().getColor(R.color.blue_color)); 
       ds.setTypeface(tfBold); 

      } 
     }; 
     if (startindex >= 0) { 
      sb.setSpan(clickableSpan, startindex , endindex , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     } 


     textview.setMovementMethod(LinkMovementMethod.getInstance()); 
     textview.setText(sb, TextView.BufferType.SPANNABLE); 
     textview.setTypeface(tfNormal); 
+0

這會發生是因爲您的文本太長,無法放入您的textview。所以你可以在佈局文件中使用elipsesize:end。 –

+0

或者使用可以使用滾動字體滾動太長的文本。 –

+0

@ChiragSavsani:我添加了elipsesize:在佈局文件中結束,但問題仍然存在。

回答

0

我認爲問題是與你的字體文件「futura_tee_bold.ttf」,只是用任何其他字體文件在那個地方,並檢查它是如何工作的。如果您想使用此字體,請嘗試通過刪除xml中該文本視圖的所有父視圖的邊距和填充。

+0

這不起作用。你有沒有其他方法可以解決這個問題 –

+0

你是否嘗試過使用其他字體'futura_tee_bold.ttf'? – Srikanth

+0

與單一類型的字體工作,但與兩個字體不工作 –

0

這個問題已經回答here

你不應該在你的ClickableSpan使用setTypeface。實際上,您應該爲文本的相同部分使用兩個不同的跨度:一個ClickableSpan和一個TypefaceSpan。

如果要爲TypefaceSpan使用自定義字體,請參閱this post

相關問題