Разработчики Android - что вам нужно от дизайнера? - PullRequest
3 голосов
/ 08 сентября 2011

Я НЕ разработчик Android, и я пытаюсь понять, что им нужно с точки зрения графических ресурсов, чтобы создать приложение, которое работает на многих устройствах Android.

Я (пытался) прочитать эту страницу http://developer.android.com/guide/practices/screens_support.html, но нахожу это несколько изумительным.они говорят так, как будто плотность экрана - это важная вещь: «Предоставьте альтернативные растровые изображения для разных плотностей экрана», но тогда, если вы не знаете размер экрана, вы не можете действительно думать с точки зрения макета.Идея состоит в том, чтобы сделать кнопки и логотипы одинакового размера на всех экранах с одинаковой плотностью, чтобы на большом экране было достаточно места, а на маленьком экране все плотно упаковано?Я не понимаю, как простое мышление с плотностью пикселей приближает меня к пониманию того, что предоставлять.

Вы должны создавать ресурсы для каждого размера экрана И плотности пикселей?скажи это не так.

в любом случае, кто-нибудь может сказать мне ... если ты разрабатывал приложение, что тебе нужно для графики?Возможно ли обеспечить графику, которая является большой и просто позволить им уменьшать масштаб?Неужели это неизбежно, что разработчик все равно придется возиться с графикой?или ему могут быть предоставлены наборы png-файлов определенных размеров, которые будут готовы к использованию?

спасибо!

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

9 Patch являются вашими друзьями.Читайте о них здесь:

http://developer.android.com/guide/topics/resources/drawable-resource.html#NinePatch

и здесь:

http://developer.android.com/guide/developing/tools/draw9patch.html

Это ваш лучший выбор для любого вида графики, котораябудет хорошо растягиваться (т. е. не градиенты, а, возможно, на некоторых экранах они будут слегка пикселизированы). Сила этих типов изображений заключается в том, что вы можете указать системе, какие пиксели повторять, если ей нужно растянуть графику.Это означает, что растяжение можно выполнять без потери качества изображения (опять же, в зависимости от вашего изображения и того, как вы решите сделать девять патчей. Кнопка «показать плохие патчи» в программе draw9patch покажет вам потенциальные проблемы. Совет: сохраняйте повторяемость).пикселей вниз до 1 слева и 1 сверху, и у вас не будет проблем с плохими исправлениями) Любая графика, которая может быть сделана в 9 исправлений, будет нуждаться только в 1 размере, поскольку система может эффективно сделать это любым необходимым размером.

Вы должны создавать ресурсы для каждого размера экрана И плотности пикселей?

Вы можете, если хотите.Это гарантирует, что приложение будет отлично смотреться на всех устройствах.Я понимаю, что это возможно не для всех проектов.В общем, если вы сделаете отдельные ресурсы для разных плотностей, вы получите что-то, что выглядит приемлемым на большинстве устройств.Все устройства классифицируются как ldpi, mdpi или hdpi (теперь может быть и «сверхвысокий» уровень, я не уверен, что у меня в голове) Так что если вы предоставите графику для этих 3-х плотностей, то система будетзнать, где находится устройство и будет тянуть правильную графику.

возможно ли предоставить графику большого размера и просто уменьшить ее?

Да, системауменьшит вашу графику, если потребуется.Но учтите, что у этого подхода есть последствия.Во-первых, каждый раз, когда система вынуждена увеличивать или уменьшать графическое изображение, она использует процессор и память для этого.Это может не быть проблемой, если у вас относительно мало масштабируемых вещей, но если у вас их много, это может привести к заметному времени задержки на телефонах с низким энергопотреблением.Во-вторых, насколько мне известно, вся графика в Android является растровой, что означает, что если вы позволите системе масштабировать что-либо вверх или вниз, качество изображения несколько снизится.Опять же, в зависимости от конкретных изображений, это может быть более или менее заметно на самом устройстве во время выполнения.

Мой лучший совет - снабдить их ресурсами нескольких разных размеров и запустить приложение на таком количестве разных устройств, как вы.Можно.Как только вы увидите, как выглядят ваши различные ресурсы на устройствах разных размеров, вы гораздо лучше почувствуете, какие из них нужно предоставить, чтобы интерфейс выглядел максимально согласованно при самых больших размерах экранов и плотностях.

0 голосов
/ 08 сентября 2011

Вот что мы делаем на моем рабочем месте.Предположим, мы получили дизайн приложения.Мы заставляем нашего дизайнера создавать 3 PSD версии для одного дизайна.3 psd предназначены для 3 диапазонов глубины.Размер, используемый для psd:

240 * 320 (низкая плотность)

320 * 480 (средняя плотность)

480 * 800 (высокая плотность)

Большую часть времени, когда я пишу макеты, я использую wrap_content, что означает, что представление должно иметь размер содержимого, которое оно переносит.Который работает в большинстве случаев, так как у меня есть конкретная плотность дизайна, поэтому изображение, которое я использую в качестве фона, должно быть подходящимСледует отметить, что в Android вы можете поместить 3 размера одного и того же изображения в разные папки, такие как drawable / ldpi, drawable / hdpi.

Например: у вас есть bg.png и у вас естьверсия для больших телефонов и версия для маленьких телефонов.Вы помещаете большой файл bg.png в папку hdpi, а маленький файл png - в папку ldpi.Android автоматически выберет подходящее изображение в зависимости от плотности телефона.Но вы должны убедиться, что имя файла совпадает.

В некоторых случаях вам необходимо изменить размер фоновых изображений, чтобы изображение не выглядело слишком масштабным.Для этого андроид использует инструмент draw9patch .С помощью этого инструмента вы можете указать области, которые могут масштабироваться, и области, которые не должны масштабироваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...