我在文本视图中使用DIEHL DECO字体。我的代码中的类文件如下所示。应用程序正在运行而没有任何错误,但显示的字体是默认字体。字体不会更改为我正在使用的字体文件。 我尝试使用另一个字体文件,代码运行良好,但对于此特定字体运行不佳。不明白这个问题是什么。请帮帮我。
public class MyTextView extends TextView{
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context) {
super(context);
}
public void setTypeface(Typeface tf, int style) {
if (style == Typeface.BOLD) {
super.setTypeface(TypeFaces.getTypeFace(getContext(),
"fonts/DIEHLD_.ttf"));
} else if (style == Typeface.ITALIC) {
super.setTypeface(TypeFaces.getTypeFace(getContext(),
"fonts/DIEHLD_.ttf"));
} else {
super.setTypeface(TypeFaces.getTypeFace(getContext(),
"fonts/DIEHLD_.ttf"));
}
}
}
这是字体类
public class TypeFaces {
private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();
public static Typeface getTypeFace(Context context, String assetPath) {
synchronized (cache) {
if (!cache.containsKey(assetPath)) {
try {
Typeface typeFace = Typeface.createFromAsset(
context.getAssets(), assetPath);
cache.put(assetPath, typeFace);
} catch (Exception e) {
Log.e("TypeFaces", "Typeface not loaded.");
return null;
}
}
return cache.get(assetPath);
}
}
}
答案 0 :(得分:1)
如果您在assets文件夹中创建了fonts文件夹,请使用assets / fonts / DIEHLD_.ttf。
答案 1 :(得分:0)
我假设您将所有字体放在&#34; fonts&#34;文件夹,位于项目的assets文件夹中。
字体tf = Typeface.createFromAsset(mContext.getAssets(),&#34; fonts / DIEHLD_.ttf&#34;); this.setTypeface(TF);