2016-02-24 47 views
2

我使用Html.fromHtml。它大膽API 21 &較高,但它並沒有顯示低API 21加粗我只希望做大膽R.string.str_taker_name(NOT:edtText.getName())。如何爲每個API加粗這個文本。Html.fromHtml在android中不顯示低API 21

takerName= (TextView) findViewById(R.id.txt_taker_name); 
takerName.setText(Html.fromHtml("<b>"+getResources().getString(R.string.str_taker_name) +"</b>: "+ edtText.getName())); 

回答

1

你可以試試這個:

TextView txt_taker_name = (TextView) findViewById(R.id.myText); 
Typeface boldTypeface = Typeface.defaultFromStyle(Typeface.BOLD); 
txt_taker_name.setTypeface(boldTypeface); 

還是在XML設置屬性:

android:textStyle="bold" 

在這種情況下,你可以試試這個功能:

public static SpannableStringBuilder makeSectionOfTextBold(String text, String textToBold){ 
     SpannableStringBuilder builder=new SpannableStringBuilder(); 
     if(textToBold.length() > 0 && !textToBold.trim().equals("")){ 
      String testText = text.toLowerCase(Locale.US); 
      String testTextToBold = textToBold.toLowerCase(Locale.US); 
      int startingIndex = testText.indexOf(testTextToBold); 
      int endingIndex = startingIndex + testTextToBold.length(); 
      if(startingIndex < 0 || endingIndex <0){ 
       return builder.append(text); 
      } 
      else if(startingIndex >= 0 && endingIndex >=0){ 
       builder.append(text); 
       builder.setSpan(new StyleSpan(Typeface.BOLD), startingIndex, endingIndex, 0); 
      } 
     }else{ 
      return builder.append(text); 
     } 
     return builder; 
    } 

和使用它像:

YourActivity.makeSectionOfTextBold(edtText.getName(), getResources().getString(R.string.str_taker_name)); 

並將結果設置爲TextView

希望它可以幫助!