Подтвердить что ты не робот

Почему плотность Nexus 6 составляет 560 точек на дюйм?

Как подготовить ресурсы для Nexus 6? Если я поместил изображения в xxxhdpi, они уменьшатся и потеряют качество. Я помещал изображения в xxhdpi, они будут увеличиваться и терять качество. Почему разработчики решили установить значение 560dpi для плотности, если реальная плотность 493ppi ближе к xxhdpi ~ 480dpi?

Nexus 6 может похвастаться впечатляющим 5,96-дюймовым дисплеем Quad HD на разрешение 2560 x 1440 (493 ppi). Это означает, что ~ 730 x 410 дп (независимые от плотности пиксели).

Nexus 6 имеет квантованную плотность 560 dpi, которая находится между xxhdpi и xxxhdpi для первичной плотности.

Для Nexus 6 платформа уменьшит активы xxxhdpi, но если эти arent доступны, тогда он увеличит активы xxhdpi.

xxhdpi ~480dpi
xxxhdpi ~640dpi
4b9b3361

Ответ 1

В случае Nexus 6 производитель выбрал квантованную плотность 560 (adb shell getprop ro.sf.lcd_density), хотя физическая плотность составляет около 493 (getResources(). getDisplayMetrics(). toString()). Понимание того, почему они могут это сделать, требует понимания значения квантованной плотности и того, как это влияет на рендеринг ресурса изображения, который объясняется здесь .

Короче говоря, квантованная плотность 560 означает, что масштабный коэффициент, используемый для загрузки/рендеринга изображений, будет 3,5. По словам Д. Хакборна, "Плотность... представляет собой абстрактное ведро плотности, которое разработчик устройства решил использовать для своего пользовательского интерфейса. Это то, что используется для оценки таких вещей, как" dp "единиц, а также выбор и масштабирование растровые изображения из ресурсов.

Ответ 2

Вы можете использовать drawable-560dpi для 560 dpi. drawable-560dpi и drawable-xxxhdpi изображения имеют одинаковое разрешение.

Ответ 3

Я думаю, что это правильный вопрос. Некоторые устройства находятся между поддерживаемыми dpis (xxhdpi и xxxhdpi), используя образы, делает ненужное масштабирование программного обеспечения. Я не беспокоюсь о разнице в качестве, но это повлияет на производительность запуска приложения. Проверить переменную willscale в BitmapFatory, если это правда, платформа сделает ненужное дополнительное масштабирование программного обеспечения. В идеале аппаратное обеспечение ui должно масштабировать это напрямую, используя openGL ES.