Font size difference caused by Android font size settings


I’m developing an app and I’m using Android to test the app. While testing with a couple of devices I found out that some devices had different font sizes. After some searching I noticed these devices had their font size settings in Android set to small font. I’ve been searching if there’s a way to set the font size to a fixed amount but haven’t been able to find out how.

I’ve made two screenshots, one with a small font size and one with a normal font size.

Does anyone know how I can set the font size to a fixed amount or how to prevent the font sizes from changing depending on the phone settings? Thanks!

I have this problem,too.
How can i solve this issue?? font size to fix??

I am also struggling with this - surely it can’t be a new use case and there MUST be a way of disabling the app responding to system base font size changes?

I found the solution using a cordova plugin to disable the user preferred text zoom.

You can find the plugin here: and add in the platform ready event:

platform.ready().then(() => {

thanks man, saved me some trouble!

The UI didn’t scale well on small screen-dimensional phones and modified the whole user interface when an app set’s “Huge” accessibility choices looked stupid.
What I did was put the following code below in my BaseActivity (an Activity class that all my activities extend from)

public void adjustFontScale(Configuration configuration) {
    if (configuration.fontScale > 1.30) {
        LogUtil.log(LogUtil.WARN, TAG, "fontScale=" + configuration.fontScale); //Custom Log class, you can use Log.w
        LogUtil.log(LogUtil.WARN, TAG, "font too big. scale down..."); //Custom Log class, you can use Log.w
        configuration.fontScale = (float) 1.30;
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        metrics.scaledDensity = configuration.fontScale * metrics.density;
        getBaseContext().getResources().updateConfiguration(configuration, metrics);

And called it right after my super.onCreate() like so


What this code does is identify whether the user sets its font scale to more than 1.30f (1.30f is “large” on Note 5 but probably varies somewhat from one device to the next). If your user sets your font too big (“Extra Large,” “Huge”…) we just size the app to “Large.”

Other Tip:
You can set their width / height with sp instead of classical dp if you want certain layouts to scale with your custom fonts ( weird font text) (say, a Relative Layout that is used to build backdrop to your fonts). The layout changes with the fonts on your application when a user changes their font size. Nice little trick.-Nice little trick.

1 Like