android:在Galaxy设备中使用自定义字体

android:在Galaxy设备中使用自定义字体,android,fonts,galaxy,Android,Fonts,Galaxy,我在android应用程序中使用自定义字体,我就是这样应用的 Typeface tf = Typeface.createFromAsset(getAssets(),"calibri.ttf"); mEmailSignInButton.setTypeface(tf); 除了三星galaxy note 2之外,该代码在任何设备上都能完美工作(我认为这在其他galaxy设备上不起作用): 我可以在galaxy设备中做些什么 编辑: 我现在喜欢这样做: 这是我的应用程序类(覆盖我的默认应用程

我在android应用程序中使用自定义字体,我就是这样应用的

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"