How to set font scale in my own android application?

后端 未结 3 430
名媛妹妹
名媛妹妹 2020-12-30 15:10

I want to allow user select font size.

Spare Parts do provide the feature to do that,

ActivityManagerNative.getDefault().updateConfiguratio

相关标签:
3条回答
  • 2020-12-30 15:33

    Translated for Xamarin....

            Android.Content.Res.Configuration configuration = Resources.Configuration;
            configuration.FontScale = (float)1; //0.85 small size, 1 normal size, 1,15 big etc
    
            Android.Util.DisplayMetrics metrics = new DisplayMetrics();
            this.WindowManager.DefaultDisplay.GetMetrics(metrics);
            metrics.ScaledDensity = configuration.FontScale * metrics.Density;
    
    0 讨论(0)
  • 2020-12-30 15:35

    I think what you are looking for is to apply a theme to your activity or view

    Please take a look at the android docs Themes

    0 讨论(0)
  • 2020-12-30 15:53

    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!

    0 讨论(0)
提交回复
热议问题