【发布时间】:2019-12-05 05:11:55
【问题描述】:
我正在使用这个 Android API Context.Resources.UpdateConfiguration(Configuration, DisplayMetrics),但它已被弃用,因此它在更高版本的 Android 系统中不起作用。我在网上做了研究,但只找到了 Java 解决方案,我无法在我的 Xamarin.Form 项目中将其翻译成 C#。
Google 文档说它已更新为 Context.CreateConfigurationContext(Configuration),但这对我不起作用(当然,DisplayMetrics 甚至没有进化)。
public void SetStandardFontSize()
{
Configuration configuration = Android.App.Application.Context.Resources.Configuration;
configuration.FontScale = (float)1;
DisplayMetrics metrics = new DisplayMetrics();
(MainActivity.mainContext as MainActivity).WindowManager.DefaultDisplay.GetMetrics(metrics);
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
//deprecated
Android.App.Application.Context.Resources.UpdateConfiguration(configuration, metrics);
}
我只是想使用上面的功能(从stackoverflow帖子中学习)来覆盖Android系统中用户自定义的字体大小设置。 所以我正在寻找一种正确的方法来更新与所有版本的Android系统兼容的配置。
非常感谢。
PS: Android.App.Application.Context.Resources.DisplayMetrics.SetTo(metrics); Android.App.Application.Context.Resources.Configuration.SetTo(configuration); 这仅适用于 Android 6,与已弃用的功能相同。
【问题讨论】:
-
你想让我给你一个详细的答案吗?
-
@G.hakim 我试过 Android.App.Application.Context.Resources.DisplayMetrics.SetTo(metrics); Android.App.Application.Context.Resources.Configuration.SetTo(configuration);但它仍然只适用于 Android 6,与已弃用的功能相同。因此,任何其他解决方案和详细代码将不胜感激!!!
标签: c# android xamarin.forms xamarin.android