我想让用户选择字体大小。
备件确实提供了这样做的功能,
ActivityManagerNative.getDefault().updateConfiguration(new font size scale config)
但这适用于所有 Android 应用程序。我想将它添加到我的应用程序的首选项中,并且只影响我的应用程序。
我试过下面的方法,有时确实有效,但我第一次启动我的应用程序时,字体大小仍然是 1.0 比例。我不知道为什么。我在 Activity 的每个 onCreate 中添加了以下代码。
Configuration config = resources.getConfiguration(); config.fontScale=1.5f;
resources.updateConfiguration(config, mDisplayMetrics);
我能做什么?
下面的代码只允许更改应用程序的字体比例。
在第二行,代码“configuration.fontScale=(float) 1;”将不得不改变以满足您的需求。默认值以 0.15 步长缩放,默认值为 1。
在调用 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);
希望这对您有所帮助!