我有一个使用 Webview 的网站,我创建了 Android 应用程序。我希望 文本大小与 Android 应用程序中的网站相同。 如果用户从移动设置中增加或减少文本大小,文本大小不应改变。
这将强制应用程序使用手机的“默认”文本大小。即使用户进入“电话设置”并更改字体大小,它也会在应用程序中保持默认值..
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);
尝试使用 dp 而不是 sp。 如果您已经使用 dp,请将带有 TextView 的 Activity 的 xml 代码提供给我们,以找出问题所在。
在 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。