Skip to main content

Overriding fonts

  • make a java file with this code

import java.lang.reflect.Field;
import android.content.Context;
import android.graphics.Typeface;

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();
        }
    }
}

  • place a font in assets folder eg. or.ttf and add this line to mainactivity

FontsOverride.setDefaultFont(this, "MONOSPACE", "or.ttf");

  • in styles folder (where the theme of the activity is mentioned) put this code under the style

<item name="android:typeface">monospace</item>

Comments

Popular posts from this blog

Navigation drawer, material design theme

Aim: To make an android app with navigation drawer, material design theme Feat: Toolbar is used instead of the ActionBar, When the user runs the app for the time , he/she can see the drawer opened on the launch of the app, also rotation doesn't effect the drawer (whose layout is a fragment). Used: Fragments in both Code:   MainActivity.java ______________________________________________________________________________________________________ DrawerList.Java______________________________________________________________________________________________ package cts.fastester; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGr...