How to set font scale in my own android application?
android, fonts, scale, size
Solution
The code below will allow to change for the application only the font scale. On second line, the code "configuration.fontScale=(float) 1;" will have to chabge to meet your needs. The defaults are scaling with 0.15 step, having default 1.
Place it before calling setContentView(R.layout.yourlayout)
Configuration configuration = getResources().getConfiguration();
configuration.fontScale=(float) 1; //0.85 small size, 1 normal size, 1,15 big etc
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
getBaseContext().getResources().updateConfiguration(configuration, metrics);
Hope this helps!
Problem
I want to allow user select font size. Spare Parts do provide the feature to do that, ActivityManagerNative.getDefault().updateConfiguration(new font size scale config) but that is for whole all android applications. I want to add it in my application's preference and only impact for my app. I tried below methods, it do works sometimes, but the first time I start my application, the font size still with the 1.0 scale. I do not why. I added below code in every onCreate of my activities. Configuration config = resources.getConfiguration(); config.fontScale=1.5f; resources.updateConfiguration(config, mDisplayMetrics); What can I do?