我有一个自定义字体BebasNeue.otf
,我想在字符串变量中设置。我搜索了很多,但没有得到任何解决方案。
我知道我们可以在textView.setTypeface(font);
等视图中设置自定义字体。但现在我想将字体设置为Strings
,如下所示:
String Name,Contact;
Name="ABCD";
Contact="97696538";
这所有字符串都包含一些值。现在我想将自定义字体设置为以下所有字符串:
Typeface fontString = Typeface.createFromAsset(m_context.getAssets(),
"BebasNeue.otf");
任何人都可以告诉我如何在我的Strings变量中设置上述字体。
任何帮助将不胜感激。
感谢。
答案 0 :(得分:3)
我已在@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);
感谢所有人帮助我并迅速。
答案 1 :(得分: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);