Я работаю над приложением, которое должно выглядеть одинаково на всех устройствах. Проблема в том, что если устройство имеет экран с большим разрешением (например, 1920x1080
и плотность разрешений 320
), то все элементы начинают выглядеть маленькими.Изменение DisplayMetrics для приложения на Android (уровень API ниже 17)
На уровне 17 API и выше я могу использовать этот код, чтобы исправить эту проблему:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
android.content.res.Configuration config = context.getResources().getConfiguration();
config.densityDpi = <desired dpi goes here>;
context.getResources().updateConfiguration(config, displayMetrics);
Но он бросает исключение java.lang.NoSuchFieldError: android.content.res.Configuration.densityDpi
если уровень API ниже.
Таким образом, вместо изменения densityDpi в конфигурации, я попытался это:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
android.content.res.Configuration config = context.getResources().getConfiguration();
displayMetrics.densityDpi = <desired dpi goes here>;
context.getResources().updateConfiguration(config, displayMetrics);
Но этот код не имеет никакого эффекта :(Может быть, я использую это неправильно Может кто-то ясно, что для меня.? пожалуйста
UPDATE:. Так что, никто ничего не знает об этом:/