Я пытаюсь понять DisplayMetrics.DENSITY_DEVICE_STABLE
свойство Android.
Из Android 10 Определение совместимости (и Android 7 Определение совместимости):
[C -0-1] По умолчанию реализации устройств ДОЛЖНЫ сообщать только об одном из Android каркасных плотностей, которые перечислены в DisplayMetrics через API DENSITY_DEVICE_STABLE, и это значение НЕ ДОЛЖНО изменяться в любое время; однако устройство МОЖЕТ сообщать о другой произвольной плотности в соответствии с изменениями конфигурации дисплея, сделанными пользователем (например, размером дисплея), установленным после начальной загрузки.
Ссылка: https://source.android.com/compatibility/android-cdd#7_1_1_3_screen_density
Из моего исследования я обнаружил, что на большинстве устройств DisplayMetrics.DENSITY_DEVICE_STABLE
равен resources.displayMetrics.densityDpi
, когда для увеличения / размера экрана установлено нормальное значение.
Однако на Samsung S10 + работает Android 10 DisplayMetrics.DENSITY_DEVICE_STABLE
равно 420, а resources.displayMetrics.densityDpi
равно 640 с масштабированием экрана, установленным на нормальное значение.
Я также проверил, что на Samsung S8 работает Android 8, и обнаружил, что DisplayMetrics.DENSITY_DEVICE_STABLE
равно resources.displayMetrics.densityDpi
с масштабированием экрана, установленным по умолчанию (это 480).
Так что мой вопрос: должно ли DisplayMetrics.DENSITY_DEVICE_STABLE
совпадать с resources.displayMetrics.densityDpi
при увеличении экрана по умолчанию.
Спасибо