android - 如何在我自己的 android 应用程序中设置字体比例?

标签 android fonts size scale

<分区>

我想让用户选择字体大小。

备件确实提供了这样做的功能,

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

希望这对您有所帮助!

关于android - 如何在我自己的 android 应用程序中设置字体比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6786439/

相关文章:

Android - 如何判断用户 "clicks"是否在 TextView 之外的任何地方?

Android:在哪里可以找到 Seekbar 可绘制 "scrubber_control_normal_holo"

python - Qt Designer 使用 Python 自定义 ttf 字体

java - 找不到符号 : string. size() Java 语法错误

html - 字体大小 -2 在这里意味着什么?

android - android 中对话框中 ListView 的高度未根据 ListView 中的项目数设置;当选项数量较少时会出现空白

java - 我手动强制退出应用程序并重新启动后,异步任务不会调用 OnPostExecute 或 onProgressUpdate

c# - 为什么无法将任何字体保存为图像? (但要在我的窗体上显示它)

css - CSS 中有没有锐利的风格?

azure - SQL Azure 表大小