Поддержка нескольких экранов для сотен иконок

В моем приложении мне приходится использовать сотни растровых значков, и мы хотим поддерживать несколько экранов.

Судя по документам разработчика Android, это единственный способ создайте эти значки для разных устройств с разными dpi.

Если это правда, нам предстоит тяжелая работа, поэтому я хочу знать, есть ли альтернатива, чтобы избежать этого?


person hguser    schedule 04.05.2013    source источник


Ответы (4)


Учитывая количество значков, с которыми вы имеете дело, о создании нескольких версий каждого вручную явно не может быть и речи.

Я предлагаю вам создать свои значки с разрешением xhdpi и придумать автоматизированный процесс (возможно, с использованием чего-то вроде ImageMagick и языка сценариев по вашему выбору) для создания более низких разрешений как часть вашего процесса сборки.

person GreyBeardedGeek    schedule 04.05.2013

Вам не нужно предоставлять разные растровые ресурсы для всех возможных плотностей пикселей, но в идеале вы должны предоставить низкое разрешение (ldpi), среднее разрешение (mdpi), высокое разрешение (hdpi) и сверхвысокое разрешение. ресурсы значков (xhdpi). Если вы не предоставите все вышеперечисленное, система Android автоматически выберет ближайший подходящий ресурс и масштабирует его в соответствии с фактической плотностью пикселей экрана.

person Rob K    schedule 04.05.2013

Посетите Android Asset Studio, где этот сайт будет предоставьте все типы изображений значков dp ​​по вашему требованию.

В вашем случае перейдите в раздел Общие значки или в раздел Значки меню.

Надеюсь это поможет.

person CRUSADER    schedule 04.05.2013
comment
По сути, приложение, над которым мы работаем, представляет собой что-то вроде карты Google. И мы рисуем разные иконки для разных тегов. Например, park и school будут иметь разные значки. Но спасибо за ваши сайты в любом случае, я думаю, что когда-нибудь воспользуюсь им. - person hguser; 04.05.2013

Вы можете поместить свои изображения в /res/drawable, тогда Android будет масштабировать их в соответствии с dpi, чтобы изображение имело примерно одинаковый физический размер независимо от плотности экрана. В этом случае изображение не будет изменено в MDPI, в 1,5 раза больше в HDPI, в 2 раза больше в XHDPI и в 3 раза больше в XXHDPI.

Вы также можете поместить их в /res/drawable-nodpi, и в этом случае масштабирование изображения не будет применяться, но вряд ли это идеально, поскольку одно и то же изображение будет физически в 3 раза меньше в XXHDPI, чем в MDPI.

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

person Kai    schedule 04.05.2013