Наконец, создали структуру, которая обрабатывает макеты и значки для нескольких экранов.
Android обобщает отображение устройства по категориям на основе двух параметров:
- Размер экрана, физический размер дисплея (по диагонали)
- Плотность экрана, физическая плотность пикселей дисплея (в пикселях на дюйм или ppi) `
Чтобы быстро определить размер и плотность экрана, установите приложение « Какой у меня размер » для Android.
Размер экрана
Android определяет четыре общих размера экрана:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- Большинство телефонов классифицируются как маленькие или обычные (примерно от 3 до 4 дюймов по диагонали). Но сейчас есть много телефонов с большим экраном, таких как Galaxy S4, HTC One, Xperia Z.
- Маленький планшет, такой как Samsung Galaxy Tab, классифицируется как большой (больше 4 дюймов).
- Очень большой размер применяется к большим устройствам, например к большим планшетам.
Android определяет четыре обобщенных плотности экрана:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
Обычно:
- размер экрана больше всего влияет на макеты вашего приложения
- плотность экрана больше всего влияет на ваше изображение и графические ресурсы
Он перечислен здесь процентную разницу экрана устройства в
- Ldpi- 75%
- Mdpi - 100% (база по данным сайта разработчика Android)
- HDPI - 150%
- XHdpi- 200%
Но, как мы знаем сейчас, большая часть устройств поставляется с 480X800, поэтому я рассматриваю это как базовое устройство, поэтому нашему новому расчету понравится этот
- Ldpi- 50%
- МДПИ - 66,67%
- HDPI - 100%
- XHdpi - 133,33%
Это означает, что сначала значок и дизайн будут созданы только для 480X800, а затем для остальных (т.е. Ldpi, Mdpi, Xhdpi).
Существуют изображения, которые являются общими для всех макетов и должны быть одинаковыми по цвету и форме (без сложной формы, без кривой), поэтому мы создаем изображения такого типа, 9patch
которые нужно поместить в папку с возможностью рисования (без суффикса). Чтобы создать изображение 9Patch, вы можете использовать DrawNinePatch или BetterNinePatch.
Теперь просто переименуйте свои изображения на основе стандартов Android и завершите свое приложение, hdpi
а затем просто возьмите drawable-hdpi
папку и откройте Adode Photoshop (рекомендуется), создайте действие нескольких размеров (просто измените размер в соответствии с процентным соотношением), как только действие будет создано для всех размеров, а затем просто выполните Пакетная автоматизация и предоставление источника (drawable-hdpi) и назначения (drawable-ldpi, drawable-mdpi, drawable-xdpi).
Причина, по которой я настаиваю на использовании Photoshop, потому что он автоматически изменит размер вашего изображения с помощью Actions, и еще один плюс заключается в том, что вам не нужно переименовывать файл (ему будет присвоено то же имя, что и исходное).
Как только вы закончите создание всех изображений, обновите свой проект и протестируйте его.
Иногда может быть вероятность того, что макет, поддерживающий экран (xhdpi, hdpi, mdpi), может быть вырезан на маленьком экране (ldpi), поэтому для обработки этого просто создайте для него отдельную папку макета (layout-small) и добавьте ScrollView
(в основном). Это оно.
Таблетки
Таблетки делятся на два размера.
- 7 дюймов (1024X (600–48 (панель навигации))) = 1024X552 (большой вытяжной)
- 10 дюймов (1280X (800–48 (панель навигации))) = 1280X752 (drawable-xlarge)
В этом нам нужно создать изображения для обоих экранов и просто поместить их соответственно
Таким образом, в нашем приложении будет эта папка для поддержки нескольких экранов.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
будет более квалификационная комбинация с Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
больше квалификатора с Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
и еще квалификатор с Screen size and Version
drawable-large-v11
drawable-xlarge-v11
и еще квалификатор с Smallest width concept(SW)
drawable-sw???dp
Более того, в Android V3.0 Honeycomb они представили новую концепцию, SW(smallest width)
в которой устройства категоризированы по ширине экрана, поэтому, если мы создаем папку с именем, drawable-sw360dp
тогда устройство с разрешением 720dp (шириной или высотой) будет использовать ресурс из этой папки.
например, чтобы найти суффикс Samsung Galaxy S3
dp для drawable-sw? dp
Со ссылкой на расчет DP , если вы хотите поддерживать свой макет или рисовать на S3, тогда в расчетах говорится
px = ширина устройства = 720
dpi = плотность устройства = 320
формула дана
px = dp * (dpi / 160)
заменяя формулу, потому что у нас есть значение px
dp = px / (dpi / 160)
теперь оцениваю,
dp= 720 / (320/160)
dp=360.
так drawable-sw360dp
сделаю работу
Получите конфигурацию устройства из GsmArena
Sameway, вы также можете создать папку в соответствии с версией Android API устройства, то есть drawable-hdpi-v11`, чтобы устройство, имеющее API11 и Hdpi, использовало эти ресурсы.
Дополнительные советы:
Используйте относительные макеты, dp, sp и mm.
dp units - независимые от устройства пиксели, нормализованные до 1 физического пикселя на экране 160 ppi, т.е. средней плотности. Масштабируется во время выполнения. Используйте для размеров элемента экрана
sp units - масштабированные пиксели, указанные как значения с плавающей запятой, основанные на единицах dp, но дополнительно масштабированные для настройки размера шрифта пользователя. Масштабируется во время выполнения. Используйте для размеров шрифта
вы всегда должны использовать RelativeLayout для макетов; AbsoluteLayout устарел и не должен использоваться.
Используйте соответствующие форматы изображений - PNG или JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
Однако PNG и JPEG не являются эквивалентами. У них разные качества, и PNG не всегда лучше:
JPEG может предложить до 50% уменьшения размера файла по сравнению с PNG, что важно, если ваше приложение интенсивно использует изображения.
Более качественный JPEG с потерями может выглядеть лучше, чем сильно сжатый PNG без потерь при том же размере файла.
Добавляйте метки к изображениям и графике для отладки
Используйте элемент supports-screen
Настройте свои эмуляторы с использованием реальных значений устройства
Обычно настольные системы отображают 72ppi (Mac) или 96ppi (Windows, Linux). По сравнению с мобильными дисплеями настольные дисплеи всегда имеют низкую плотность.
Всегда настраивайте эмуляторы Android для имитации реальных значений устройства и всегда настраивайте их масштабирование для имитации плотности устройства.
В Eclipse легко создать несколько эмуляторов (в строке меню Eclipse выберите Window> AVD Manager> New ), настроенных со значениями для реальных устройств:
Назовите эмулятор реального устройства, которое он эмулирует. Укажите разрешение, не используйте встроенные общие размеры. Установите плотность устройства, соответствующую реальному устройству (на панели «Аппаратное обеспечение» установите для свойства абстрактного ЖК-дисплея реальную плотность, всегда целочисленное значение)
При запуске устройства всегда выбирайте «Масштабировать отображение до реального размера» и вводите реальный размер экрана в дюймах.
Если вы не установите плотность устройства, эмулятор по умолчанию использует низкую плотность и всегда загружает ресурсы, специфичные для ldpi. Разрешение (размеры в пикселях) будет правильным, но ваши ресурсы изображения, зависящие от плотности, не будут отображаться должным образом.
Конечно, ничто из того, что вы делаете, не приведет к воспроизведению изображения с более высокой плотностью на настольном дисплее с более низкой плотностью.
Вот данные, собранные в течение 7-дневного периода, заканчивающегося 1 октября 2012 г. Чтобы увидеть последнюю статистику о версии платформы Android, перейдите сюда
В зависимости от размера экрана
На основе плотности экрана