Как плотность пикселей соответствует размеру экрана?
Извините за создание потенциального дубликата, но я не нашел ничего, что отвечало бы на мой вопрос. Это по существу сводится к:
Какие размеры изображений я должен включать в какие папки для полноэкранных изображений для поддержки всех устройств Android?
В ответах обычно указывается разное разрешение в пикселях для каждого из сегментов плотности.
Например:
xxxhdpi: 1280x1920 px xxhdpi: 960x1600 px xhdpi: 640x960 px hdpi: 480x800 px mdpi: 320x480 px ldpi: 240x320 px
Источник: Android: Размер фонового изображения (в пикселях), который поддерживает все устройства
Подобный список на самом деле именно то, что я искал. Единственная проблема в том, что это не имеет смысла для меня.
Группирование изображений по плотности кажется правильным для изображений, которые должны отображаться одинакового размера при разных плотностях (например, иметь значок всегда размером 1 x 1 см, независимо от плотности экрана).
Однако, когда дело доходит до полноэкранных изображений, я не хочу выбирать изображение на основе плотности пикселей дисплея, но на основе его фактического размера пикселей! (Или я?)
Допустим, у меня есть 3 устройства (вымышленные значения):
- 2"часы с дисплеем 500 x 500 пикселей (~ hdpi)
- 4"телефон с дисплеем 1000 x 1000 пикселей (~ hdpi)
- 10-дюймовый планшет с дисплеем 1000 x 1000 пикселей (~ т / д)
И изображение размером 1000 x 1000 пикселей, которое я хочу вывести на весь экран на всех устройствах.
Очевидно, что 2"и 4" устройства имеют более высокую плотность пикселей, поэтому они получают изображение от hdpi
в то время как 10"-устройство получает его от mdpi
-bucket. Это означает, что устройства 2"и 4" используют один и тот же размер изображения, а устройства 10 "используют меньший.
Но моя интуиция подсказывает мне, что я должен использовать уменьшенное изображение для 2-дюймового устройства (недостаточно пикселей для отображения изображения размером 1000 x 1000 пикселей) и полное разрешение для 4-дюймовых и 10-дюймовых устройств (так как они оба достаточно пикселей, чтобы получить полное разрешение 1000 x 1000 пикселей). Мне кажется, что сегменты плотности не подходят для этого.
Я предполагаю, что ответы там не все неправильные, и что это просто мой мыслительный процесс, который ошибочен. Я просто не могу понять, в какой момент. Любая помощь приветствуется!
Ps. Меня не очень волнуют точные значения разрешения или пропорции. Некоторое обрезание / растяжение совершенно нормально. Мне просто интересно, как заставить Android выбирать изображение с наиболее подходящим разрешением, когда вы хотите отобразить его на весь экран. Мне кажется, что ведра плотности не являются правильным подходом.
1 ответ
Какие размеры изображений я должен включать в какие папки для полноэкранных изображений для поддержки всех устройств Android?
По сути, нет ответа на ваш вопрос.
В общем, плотность пикселей и размер экрана могут быть соотнесены, но между ними нет формальной связи. Ничто не мешает производителю оборудования сделать крошечное устройство с невероятно высокой плотностью пикселей или огромное устройство с низкой плотностью пикселей.
Кроме того, существует множество примеров различных устройств с одинаковой плотностью пикселей, но с разным размером экрана.
Наконец, возникает вопрос о соотношении сторон: у вас может быть два устройства с одинаковой плотностью пикселей и одинаковым количеством горизонтальных пикселей... но они могут легко иметь два разных числа вертикальных пикселей.
Любая попытка создать "полноэкранный" png, который работает на каждом Android-устройстве, обречена на провал (по крайней мере, в некоторых отношениях), по крайней мере, на некоторых устройствах. Вы можете создавать векторные рисунки, которые масштабируются до любого размера экрана, но вам все равно нужно учитывать тот факт, что существуют экраны с различным соотношением сторон.