2013-11-22 78 views
2

我有一個自定義字體BebasNeue.otf我想在字符串變量中設置。我搜查了很多,但沒有得到任何解決方案。在字符串中設置自定義字體

我知道我們可以在像textView.setTypeface(font);這樣的視圖中設置自定義字體。但現在我想將字體設置爲Strings,我有如下:

String Name,Contact; 
Name="ABCD"; 
Contact="97696538"; 

這所有的字符串中包含一些值。現在我想將自定義字體設置爲所有低於字符串:

Typeface fontString = Typeface.createFromAsset(m_context.getAssets(), 
      "BebasNeue.otf"); 

任何一個可以告訴我,我怎麼能在我的字符串變量設置上述字體。

任何幫助將不勝感激。

謝謝。

+0

喜在哪裏ü要顯示這些字符串? – ASP

+0

我在畫布上繪製的圖像上顯示此字符串。 – GrIsHu

+1

這可能有幫助:: http://stackoverflow.com/questions/6042977/android-set-custom-font-to-a-paint – ASP

回答

2

我已經解決了我的問題,如下所示,並在@ASP提供的意見的幫助下。

Typeface fontString = Typeface.createFromAsset(m_context.getAssets(), 
       "BebasNeue.otf"); 
    Paint paint = new Paint(); 
    paint.setTypeface(fontString); 
    mCanvas.drawText("ID :" + m_sId, dw - 450, dh - 350, paint); 

感謝所有幫助和快速。

0

也許這可以幫助。

public class TypefaceSpan extends MetricAffectingSpan { 
/** An <code>LruCache</code> for previously loaded typefaces. */ 
private static LruCache<String, Typeface> sTypefaceCache = new LruCache<String, Typeface>(
     12); 

private Typeface mTypeface; 

/** 
* Load the {@link Typeface} and apply to a {@link Spannable}. 
*/ 
public TypefaceSpan(Context context, String typefaceName) { 
    mTypeface = sTypefaceCache.get(typefaceName); 

    if (mTypeface == null) { 
     mTypeface = Typeface.createFromAsset(context.getApplicationContext().getAssets(), 
              String.format("%s", typefaceName)); 

     // Cache the loaded Typeface 
     sTypefaceCache.put(typefaceName, mTypeface); 
    } 
} 

@Override 
public void updateMeasureState(TextPaint p) { 
    p.setTypeface(mTypeface); 

    // Note: This flag is required for proper typeface rendering 
    p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); 
} 

@Override 
public void updateDrawState(TextPaint tp) { 
    tp.setTypeface(mTypeface); 

    // Note: This flag is required for proper typeface rendering 
    tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); 
} 
} 

而且使用這樣的

SpannableString s = new SpannableString("My Title"); 
s.setSpan(new TypefaceSpan(this, "MyTypeface.otf"), 0, s.length(), 
     Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);