如果用户通过移动设置减小或增大尺寸,我的 Android 应用程序文本大小将会发生变化

问题描述 投票:0回答:3

我有一个使用 Webview 的网站,我创建了 Android 应用程序。我希望 文本大小与 Android 应用程序中的网站相同。 如果用户从移动设置中增加或减少文本大小,文本大小不应改变。

android android-webview android-debug
3个回答
0
投票

这将强制应用程序使用手机的“默认”文本大小。即使用户进入“电话设置”并更改字体大小,它也会在应用程序中保持默认值..

Configuration configuration = getResources().getConfiguration();
configuration.fontScale = 1.0f;
DisplayMetrics metrics = getResources().getDisplayMetrics();
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
getResources().updateConfiguration(configuration, metrics);

0
投票

尝试使用 dp 而不是 sp。 如果您已经使用 dp,请将带有 TextView 的 Activity 的 xml 代码提供给我们,以找出问题所在。


0
投票

在 Android 8.1 (API 27) 上,之前的答案都不适合我。这是有效的:将以下代码添加到您的活动中:

Kotlin 代码:

override fun attachBaseContext(newBase: Context?) {

val newOverride = Configuration(newBase?.resources?.configuration)
newOverride.fontScale = 1.0f
applyOverrideConfiguration(newOverride)

super.attachBaseContext(newBase)}

Java代码:

@Override
protected void attachBaseContext(Context newBase) {

final Configuration override = new Configuration(newBase.getResources().getConfiguration());
override.fontScale = 1.0f;
applyOverrideConfiguration(override);

super.attachBaseContext(newBase);}

您无需更改 AndroidManifest.xml。

© www.soinside.com 2019 - 2024. All rights reserved.