android:在Galaxy设备中使用自定义字体
我在android应用程序中使用自定义字体,我就是这样应用的android:在Galaxy设备中使用自定义字体,android,fonts,galaxy,Android,Fonts,Galaxy,我在android应用程序中使用自定义字体,我就是这样应用的 Typeface tf = Typeface.createFromAsset(getAssets(),"calibri.ttf"); mEmailSignInButton.setTypeface(tf); 除了三星galaxy note 2之外,该代码在任何设备上都能完美工作(我认为这在其他galaxy设备上不起作用): 我可以在galaxy设备中做些什么 编辑: 我现在喜欢这样做: 这是我的应用程序类(覆盖我的默认应用程
Typeface tf = Typeface.createFromAsset(getAssets(),"calibri.ttf");
mEmailSignInButton.setTypeface(tf);
除了三星galaxy note 2之外,该代码在任何设备上都能完美工作(我认为这在其他galaxy设备上不起作用):
我可以在galaxy设备中做些什么
编辑:
我现在喜欢这样做:
这是我的应用程序类(覆盖我的默认应用程序类):
}
覆盖我的字体的类:
public final class FontsOverride {
public static void setDefaultFont(Context context,
String staticTypefaceFieldName, String fontAssetName) {
final Typeface regular = Typeface.createFromAsset(context.getAssets(),
fontAssetName);
replaceFont(staticTypefaceFieldName, regular);
}
protected static void replaceFont(String staticTypefaceFieldName,
final Typeface newTypeface) {
try {
final Field staticField = Typeface.class
.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true);
staticField.set(null, newTypeface);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
在我的清单中:
<application
android:allowBackup="true"
android:name="utils.ApplicationCustom"
基本上,如果任何设备主题与您的字体重叠,那么它将不工作,因为设备层终于出现了。您可以重新启动设备,然后尝试它开始工作。。因为启动主题将删除 你在logcat中看到任何关于字体的堆栈跟踪吗?不,在logcat中没有关于字体的任何信息。。。
<application
android:allowBackup="true"
android:name="utils.ApplicationCustom"