Как установить масштаб шрифта в моем собственном приложении для Android?
Я хочу позволить пользователю выбрать размер шрифта.
Запасные части предоставляют возможность сделать это,
ActivityManagerNative.getDefault (). UpdateConfiguration(новая конфигурация шкалы размера шрифта)
но это для всех приложений для Android. Я хочу добавить его в настройках моего приложения и повлиять только на мое приложение.
Я попробовал следующие методы, иногда это работает, но при первом запуске приложения размер шрифта по-прежнему составляет 1,0. Я не почему. Я добавил ниже код в каждом onCreate моей деятельности.
Конфигурация config = resources.getConfiguration(); config.fontScale=1.5f; resources.updateConfiguration(config, mDisplayMetrics);
Что я могу сделать?
3 ответа
Код ниже позволит изменить для приложения только масштаб шрифта. Во второй строке код "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);
Надеюсь это поможет!
Переведено для Xamarin....
Android.Content.Res.Configuration configuration = Resources.Configuration;
configuration.FontScale = (float)1; //0.85 small size, 1 normal size, 1,15 big etc
Android.Util.DisplayMetrics metrics = new DisplayMetrics();
this.WindowManager.DefaultDisplay.GetMetrics(metrics);
metrics.ScaledDensity = configuration.FontScale * metrics.Density;
Я думаю, что вы ищете, чтобы применить тему к вашей деятельности или просмотра
Пожалуйста, ознакомьтесь с Android-документами Темы