Приложение Skeleton для поддержки нескольких экранов
Как мы знаем, Android поставляется с различными устройствами, которые имеют различные функции, разрешение и размер экрана, поэтому при разработке приложения, которое поддерживает несколько (маленький и большой) экран, существует препятствие по размеру и компоновке.
Это приводит к различным комбинациям размеров экрана, разрешений и точек на дюйм и создает довольно сложную задачу при проектировании и разработке для устройств Android. Хотя некоторые другие производители (не Android) имеют разные разрешения и DPI, они имеют одинаковый размер экрана, а разрешения соответствуют одинаковому формату изображения. Таким образом, изображение может быть создано для устройств, не являющихся Android.
Мой вопрос заключается в том, существует ли надлежащий поток или архитектура, которой нужно следовать, чтобы соответствовать требованию?
Помните, у нас есть планшеты разного размера и разрешения.
Я знаю, что Android Developer содержит эту информацию, но, по моему мнению, это от реализации.
Из моих знаний я понял, что для разработки графики для Android даже программист должен знать концепцию проектирования.
2 ответа
Наконец-то создана структура, которая обрабатывает макеты и иконки для нескольких экранов.
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)
- HDI-150%
- XHdpi- 200%
Но, как мы теперь знаем, большинство устройств поставляются с 480X800, поэтому я считаю, что это устройство на основе, поэтому наш новый расчет будет таким
- Лдпи- 50%
- Тпд- 66,67%
- HDI- 100%
- XHdpi - 133,33%
Это означает, что сначала значок и дизайн будут созданы только для 480X800, а затем для остальных (т.е. Ldpi, Mdpi, Xhdpi).
Существуют изображения, которые являются общими для всех макетов и должны быть однородными по цвету и форме (без сложной формы, без кривой), поэтому для этого типа изображения мы создаем 9patch
который должен быть помещен в папку "drawable (без суффикса)". Для создания изображения 9Patch вы можете использовать DrawNinePatch или BetterNinePatch.
Теперь просто переименуйте ваши изображения в соответствии со стандартами Android и заполните приложение hdpi
а потом просто взять drawable-hdpi
папку и Open Adode Photoshop (рекомендуется) создать Действие нескольких размеров (просто измените размер в соответствии с процентным соотношением), как только Действие будет создано для всех размеров, затем просто выполните Пакетную автоматизацию и укажите источник (drawable-hdpi) и пункт назначения (drawable-ldpi, drawable-mdpi, drawable-xdpi).
Причина, по которой я настаиваю на том, чтобы вы использовали Photoshop, потому что он автоматически изменит размер вашего изображения с помощью Actions, и еще один плюс заключается в том, что вам не нужно переименовывать файл (ему будет присвоено то же имя, что и у исходного).
Как только вы завершите создание всех изображений, обновите ваш проект и протестируйте его.
Иногда может случиться так, что макет, поддерживающий экран (xhdpi, hdpi, mdpi), может быть вырезан на маленьком экране (ldpi), поэтому для обработки просто создайте для него отдельную папку Layout (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
дп к суффиксу к drawable-sw?dp
С учетом вычисления DP, если вы хотите поддержать свой макет или сделать его доступным для S3, тогда вычисление говорит
px= ширина устройства = 720
точек на дюйм = плотность устройства = 320
формула дана
px = dp * (dpi / 160)
меняя формулу, потому что у нас есть значение px
dp = px / (dpi / 160)
сейчас оцениваю,
dp= 720 / (320/160);
dp=360.
так drawable-sw360dp
сделаю работу
Получите конфигурацию вашего устройства от GsmArena Sameway. Вы также можете создать папку в соответствии с версией API устройства Android, т.е. drawable-hdpi-v11`, чтобы устройство, имеющее API11 и Hdpi, использовало эти ресурсы.
Дополнительные советы:
Используйте относительные раскладки, dp, sp и mm
единицы измерения dp - независимые от устройства пиксели, нормализованные до 1 физического пикселя на экране с разрешением 160 ppi, т.е. средней плотности. Масштабируется во время выполнения. Использовать для размеров элементов экрана
sp unit - масштабированные пиксели, заданные как значения с плавающей точкой, основанные на единицах 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 без потерь с высокой степенью сжатия при том же размере файла
Добавьте ярлыки к вашим изображениям и графике для отладки
Используйте элемент Support-Screens
Настройте свои эмуляторы с реальными значениями устройства
Традиционно, настольные системы отображаются на 72ppi (Mac) или 96ppi (Windows, Linux). По сравнению с мобильными устройствами настольные дисплеи всегда имеют низкую плотность.
Всегда настраивайте свои эмуляторы Android для имитации реальных значений устройства и всегда устанавливайте их масштабирование для эмуляции плотности устройства.
В Eclipse легко создать несколько эмуляторов (в строке меню Eclipse выберите " Окно"> "Диспетчер AVD"> "Создать"), настроенных со значениями для реальных устройств:
Назовите эмулятор для реального устройства, которое он эмулирует. Укажите разрешение, не используйте встроенные общие размеры. Установите плотность устройства, соответствующую реальному устройству (на панели "Оборудование" задайте для свойства Abstracted LCD реальную плотность, всегда целочисленное значение).
Когда вы запускаете устройство, всегда выбирайте Масштабировать изображение до реального размера и вводите реальный размер экрана в дюймах.
Если вы не установили плотность устройства, по умолчанию эмулятор имеет низкую плотность и всегда загружает ресурсы, специфичные для ldpi. Разрешение (размеры в пикселях) будет правильным, но ресурсы изображения, зависящие от плотности, не будут отображаться должным образом.
Конечно, ничто из того, что вы делаете, не будет воспроизводить изображение с более высокой плотностью на настольном дисплее с меньшей плотностью.
Вот данные, собранные за 7-дневный период, заканчивающийся 1 октября 2012 года. Чтобы увидеть последние статистические данные о версии платформы Android, перейдите по этой ссылке.
В зависимости от размера экрана
На основе плотности экрана
Дизайнеры должны создавать базовые проекты
base size of mdpi devices * density conversion factor of highest supported density bucket
size.Base размер экрана составляет 320 X 480 пикселей и плотность ковши следующие:
- ldpi: 0,75
- MDP: 1,0 (базовая плотность)
- HDP: 1,5
- xhdpi: 2.0
- XXXDPI: 3,0
- XXXHDPI: 4,0
А для освоения дополнительного доступного пространства на устройствах Android следует использовать растягиваемые компоненты в обоих направлениях (по горизонтали и вертикали). Подробная информация доступна здесь:
http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/