Размеры экрана Android в пикселях для ldpi, mdpi, hpdi?
Я прочитал 10 статей, но все еще не могу найти никакого отношения между ldpi, mdpi, hdpi и фактическими размерами в пикселях!? Может ли кто-нибудь дать прямой ответ, пожалуйста (если он есть!)
Я в основном пытаюсь собрать заставку, которая должна работать на нескольких устройствах без растягивания - но я боюсь, поскольку все, что я пытаюсь, либо сжато, либо растянуто!?
Приветствия
Пол
Ответы
Ответ 1
ldpi, mdpi и hdpi относятся к плотности экрана, , что означает, сколько пикселей может вписаться в один дюйм.
отношение между пикселями между ними:
- ldpi = 1: 0.75
- mdpi = 1:1
- hdpi = 1:1.5
- xhdpi = 1: 2
- xxhdpi = 1: 3
- xxxhdpi = 1: 4
поэтому давайте возьмем изображение размером около 100X100:
- для mdpi должно быть 100X100
- для ldpi это должно быть 75X75
- для hdpi должно быть 150X150
- для xhdpi должно быть 200X200
- для xxhdpi должно быть 300X300
- для xxxhdpi должно быть 400X400
, таким образом, для экранов с одинаковым размером, но с разными DPI, все изображения кажутся одинаковыми по размеру на экране.
Также у вас есть несколько типов размеров экрана: маленький, нормальный, большой, большой, и каждый из них может быть ldpi, mdpi, hdpi, xhdpi, xxhdpi (Nexus 10) или xxxhdpi.
Вы можете попытаться создать образ заставки, подходящий для каждого типа экрана
что дает вам 4 * 5 = 20 разных изображений (мне это очень нравится).
Пока только Nexus 10 находится в категории xxhdpi.
Ответ 2
Установить ImageMagick и использовать эту оболочку script для создания ваших файлов всплесков и значков для нескольких устройств - iOS, Android, Bada и Windows Phone. Вы можете использовать cygwin/gitbash, если вы находитесь в Windows
Я только что сделал, и я очень доволен этим: -)
Размеры экрана находятся внутри script и есть -
480x800 - screen-hdpi-portrait.png
320x200 - screen-ldpi-landscape.png
720x1280 - screen-xhdpi-portrait.png
320x480 - screen-mdpi-portrait.png
480x320 - screen-mdpi-landscape.png
200x320 - screen-ldpi-portrait.png
800x480 - screen-hdpi-landscape.png
Ответ 3
Определения:
- xlarge экраны не менее 960dp x 720dp. большие экраны
менее 640dp x 480dp. нормальные экраны не менее 470dp x 320dp.
маленькие экраны составляют не менее 426dp x 320dp. (Android в настоящее время нет
экраны поддержки меньше этого.)
Кроме того, ознакомьтесь с этим блогером от Dianne Hackborne:
http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html
Наверное, проще всего использовать представление изображения и установить тип сканирований CENTER_CROP.
(Равномерно масштабируйте изображение (поддерживайте пропорции изображения), чтобы оба размера (ширина и высота) изображения были равны или больше соответствующего размера представления).
Убедитесь, что вы используете тег src, а не устанавливаете фон.
<ImageView
android:id="@+id/home_video_layout"
android:src="@drawable/splash_image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
/>
Обновлено:
Понимание плотности экрана и "dp"
Разрешение - это фактическое количество пикселей, доступных на дисплее, плотность - это количество пикселей в пределах постоянной области дисплея, а размер - это количество физического пространства, доступного для отображения вашего интерфейса. Они взаимосвязаны: увеличивайте разрешение и плотность вместе, а размер остается примерно одинаковым. Вот почему экран 320x480 на экране G1 и 480x800 на Droid имеет одинаковый размер экрана: экран 480x800 имеет больше пикселей, но он также имеет более высокую плотность.
Чтобы удалить вычисления размера/плотности с рисунка, платформа Android работает там, где это возможно, с точки зрения "dp" единиц, которые корректируются для плотности. В экранах средней плотности ( "mdpi" ), которые соответствуют оригинальным телефонам Android, физические пиксели идентичны dp; размеры устройств составляют 320x480 в любом масштабе. Более поздний телефон может иметь физико-пиксельные размеры 480x800, но быть устройством с высокой плотностью. Коэффициент преобразования от hdpi до mdpi в этом случае равен 1,5, поэтому для целей разработчика устройство имеет размер 320x533 в формате dp.
Ответ 4
Я нашел этот онлайн-калькулятор dip ↔ пикселей очень полезным.
https://pixplicity.com/dp-px-converter/
Ответ 5
Я поддерживаю предыдущие ответы, но не забываю о силе Draw9Patch или используя NinePatchDrawables
Ответ 6
Они относятся к плотности пикселей экрана, а не к размеру экрана. Вам нужно заглянуть в спецификаторы размера экрана, такие как small, medium, large и xlarge, если вам действительно нужно изменить поведение, основанное на размере экрана в пикселях.
Документы Android объясняют, какие плотности и размеры соответствуют этим идентификаторам.
Ответ 7
Устройства Android могут иметь разные отношения ширины и высоты, в то время как ваше изображение имеет фиксированный. Если вы не хотите, чтобы ваше изображение растягивалось, вам нужно заполнить пробелы сверху и снизу или слева и справа.