У меня проблема с настройкой масштабирования экрана в Android 8+ программно, однако эта опция не используется, но я пытаюсь сделать это, как указано в документации, но она не работает или у меня не все в порядке.
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
TinyDB db = new TinyDB(getBaseContext());
Configuration configuration = getBaseContext().getResources().getConfiguration();
configuration.fontScale = db.getFloat("zoomD", 0.85f); //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;
configuration.densityDpi = (int) getResources().getDisplayMetrics().xdpi;
//getBaseContext().createConfigurationContext(configuration); //
getBaseContext().getResources().updateConfiguration(configuration, metrics);
}
Я также использовал это, и оно не работает:
configuration.setTo(configuration);
metrics.setTo(metrics);
Есть другие подобные вопросы, но все они касаются изменения языка в приложении, но я здесьприменение настроек в Screen Zoom.
Код для изменения размера увеличения в Stackoverflow
Аналогичный вопрос
Или естьдругая альтернатива для достижения этого программно?