Ich versuche, die Standardschriftart in meiner App zu ändern. Aber es funktioniert nicht. Dies sind Schritte, die ich getroffen haben:Ändern der Standardschriftart in Android-App nicht möglich
1) Erstellt Klasse TypefaceUtil.java
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
import java.lang.reflect.Field;
public class TypefaceUtil {
public static void overrideFont(Context context, String defaultFontNameToOverride, String customFontFileNameInAssets) {
try {
final Typeface customFontTypeface = Typeface.createFromAsset(context.getAssets(), customFontFileNameInAssets);
final Field defaultFontTypefaceField = Typeface.class.getDeclaredField(defaultFontNameToOverride);
defaultFontTypefaceField.setAccessible(true);
defaultFontTypefaceField.set(null, customFontTypeface);
} catch (Exception e) {
Log.e("CustomFontException", "Can not set custom font " + customFontFileNameInAssets + " instead of " + defaultFontNameToOverride);
}
}
}
2) In einer Klasse erweitern Anwendung:
public void onCreate() {
super.onCreate();
TypefaceUtil.overrideFont(getApplicationContext(), "MONOSPACE", "fonts/varelaround_regular.ttf");
}
3) In Stile. xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:typeface">monospace</item>
</style>
Immer noch nicht funktioniert. Fehle ich etwas?
verwenden setzen Seltsam, ich benutzte den gleichen Code und es funktionierte gut für mich. Der einzige Unterschied ist, dass ich 'serif' anstelle von' monospace' verwendet habe. –