Есть ли способ создания рисунков xxhdpi, xhdpi, hdpi, mdpi и ldpi из крупномасштабного изображения?


271

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


3
В случае, если вы используете Windows: github.com/delight-im/AndroidDrawableResizer
caw

Я сделал этот инструмент на Android, вы помещаете свою фотографию в папку загрузки своего телефона, затем выбираете опорный размер & dpi, и он конвертируется во все плотности и создает соответствующие папки: play.google.com/store/apps/details ? id = fr.arnaudguyon.dpiresizer
Arnaud SmartFun

Проверьте этот ответ для быстрого и простого метода - stackoverflow.com/a/40830399/4015856
Asim KT

4
В Android Studio щелкните правой кнопкой мыши res -> New -> Image Asset, выберитеLauncher Icons (legacy)
onmyway133

Ответы:


191

Вариант № 1: Просто -xxhdpiотправьте чертежи и дайте Android уменьшить их выборку во время выполнения (недостаток: будет работать только на довольно недавних устройствах, где -xxhdpiэто известно).

Вариант № 2. Используйте Android Asset Studio, чтобы уменьшить их выборку.

Вариант № 3: автоматизировать процесс в графическом редакторе, согласно ответу ssantos .

Вариант № 4. Сценарий решения, используя что-то вроде ImageMagick.

Вариант № 5: Используйте изображение пекаря


Является ли доставка только xxhdpi и xhdpi альтернативой? Я предполагаю, что устройства, которые не понимают xxhdpi, будут уменьшены по сравнению с xhdpi
Хуан Кампа

@Juan: "Является ли доставка только xxhdpi и xhdpi альтернативой?" - только если ваш minSdkVersion8 или выше. Если вы пытаетесь поддерживать более старые устройства, чем это, вам также понадобится hdpiодно устройство, которого не было и xhdpiне xxhdpiбыло для API уровня 7 и ниже. Теперь, если вам нравится внешний вид ваших
уменьшенных выборок, это

Что касается варианта № 1 и ваших комментариев о xxhdpiнесуществовании, я не верю, что это правильно. Внутренне, Android использует числа DPI (160, 320, 480 и т. Д.), А не строки, для квалификаторов ресурса. Если системный DPI равен 160, и он находит изображение 640, он уменьшит его на 4, без необходимости «знать» о его текстовом квалификаторе. Мы отправили ресурсы, которые существуют только в xxxhdpiпапке (Android 4.3), на устройства Android 2.3.
Мэтт Куигли

вариант 2 не поддерживает xxxhdpi
отображаемое имя

2
Вариант № 4: Сценарий решения с ImageMagick здесь
rdromao

158

Обновление :

Плагин упоминалось ранее был оставлен, но он , очевидно , имеет вилку уточненный здесь .

Старый ответ :

Я использую плагин Android Studio с именем Android Drawable Importer:

введите описание изображения здесь

Чтобы использовать его после установки, щелкните правой кнопкой мыши на папке res / drawable и выберите New > Batch Drawable Import:

Затем выберите изображение с помощью +кнопки и установите Разрешение равным xxhdpi (или любым другим разрешением исходного изображения).


13
Спасибо, но я использовал «Batch Drawable Import» вместо «Scaled Drawable».
Малдер

Как говорит @ user123456, мне пришлось использовать Batch Drawable, потому что Scaled Drawable не появилось
lujop

1
Похоже, что этот плагин больше не поддерживается - последний коммит в 2016 году ( github.com/winterDroid/… ), отчеты о сбоях без ответа ...
снижение активности

3
Мне удалось воскресить этот восхитительный плагин под AS 3.6 и, возможно, хотя и не проверено, под AS 3.5 также.
Плохой неудачник

2
@PrajwalW, обновленный ответ для упоминания о современной ветке.
Адам Джонс

97

Обновить:

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

Если вы хотите быстрый и простой способ, посетите https://www.img-bak.in/ или https://appicon.co/ они также работают с iOS.

Я постараюсь объяснить процесс поэтапно, чтобы его было легко понять.

1. Установите плагин вручную, как указано в ReadME

2. Перезапустите андроид студию

3. Как вы можете видеть на следующем скриншоте, здесь есть только один рисунок

введите описание изображения здесь

4. Теперь щелкните правой кнопкой мыши по папке для рисования и выберите «Создать»> «Пакетный импорт с возможностью рисования».

введите описание изображения здесь

8. Теперь нажмите на значок добавления

5. Теперь выберите «Одиночное» изображение, которое вы хотите различные варианты рисования.

введите описание изображения здесь

6. Теперь выберите размер исходного изображения. Если исходное изображение имеет формат xxhdpi, как в моем случае, выберите «xxhdpi» в качестве «Source Resoultion».

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

введите описание изображения здесь


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

@LaxmanBhattarai, я хочу, чтобы мое приложение поддерживало только ландшафт только на планшете. Так что, согласно вашему ответу, какую папку для рисования я должен использовать для изображений, чтобы поддерживать все планшетные устройства? Можете ли вы дать мне знать?
Хирен Патель

developer.android.com/training/basics/supporting-devices/… пожалуйста, обратитесь к этому документу, и я думаю, что добавление -land в конце любой папки может привести к макету ландшафта
erluxman

Опция «Icon Pack Drawable Importer» использует иконки Material / Android и решена для меня. Спасибо за совет @LaxmanBhattarai
Фрэнсис Родригес

1
Похоже, что этот плагин больше не поддерживается - последний коммит в 2016 году ( github.com/winterDroid/… ), отчеты о сбоях без ответа ...
снижение активности

67

Используйте онлайн-сервис, такой как Image Baker .

имиджевый пекарь

Это просто. Загрузите изображения и загрузите обработанные ресурсы для Android и iOS.

Загруженные изображения

Примечание: Image Baker - это бесплатный сервис, созданный мной и моим другом.


1
Это работает для меня. Я думаю, что есть виджет обратной связи, который вы можете рассказать разработчикам о проблеме, с которой вы столкнулись.
Асим К.Т.

5
да, это не работает. остается "загрузка изображений"
batmaci

1
Это работает. Так как это бесплатный сервис, сервер может работать медленно. (работа по уборке после 24 часов) Повторите попытку через день или сообщите разработчикам.
Асим К.Т.

Почему задание cron запускается один раз в 24 часа, а не чаще, чтобы предотвратить его зависание? Это ограничение бесплатного сервиса? Кроме того, почему у него «около 100 долларов в год для запуска сервиса», если он работает на бесплатном сервере (стоимость разработки?).
снижение активности

1. Это ограничение бесплатного сервиса. 2. Если он бесплатный, деньги не нужны. (только плата за домен)
Asim KT

40

Скрипт bash с использованием ImageMagick (convert) согласно ответу CommonsWare:

Добавлено создание папок и проверка аргументов благодаря Кишан Вагела

#!/bin/sh
#---------------------------------------------------------------
# Given an xxhdpi image or an App Icon (launcher), this script
# creates different dpis resources and the necessary folders
# if they don't exist
#
# Place this script, as well as the source image, inside res
# folder and execute it passing the image filename as argument
#
# Example:
# ./drawables_dpis_creation.sh ic_launcher.png
# OR
# ./drawables_dpis_creation.sh my_cool_xxhdpi_image.png
#
# Copyright (c) 2016 Ricardo Romao.
# This free software comes with ABSOLUTELY NO WARRANTY and
# is distributed under GNU GPL v3 license. 
#---------------------------------------------------------------

if [ $# -eq 0 ]; then
    echo "No arguments supplied"
else if [ -f "$1" ]; then
    echo " Creating different dimensions (dips) of "$1" ..."
    mkdir -p drawable-xxxhdpi
    mkdir -p drawable-xxhdpi
    mkdir -p drawable-xhdpi
    mkdir -p drawable-hdpi
    mkdir -p drawable-mdpi

    if [ $1 = "ic_launcher.png" ]; then
        echo "  App icon detected"
        convert ic_launcher.png -resize 144x144 drawable-xxhdpi/ic_launcher.png
        convert ic_launcher.png -resize 96x96 drawable-xhdpi/ic_launcher.png
        convert ic_launcher.png -resize 72x72 drawable-hdpi/ic_launcher.png
        convert ic_launcher.png -resize 48x48 drawable-mdpi/ic_launcher.png
        rm -i ic_launcher.png
    else
        convert $1 -resize 75% drawable-xxhdpi/$1
        convert $1 -resize 50% drawable-xhdpi/$1
        convert $1 -resize 38% drawable-hdpi/$1
        convert $1 -resize 25% drawable-mdpi/$1
        mv $1 drawable-xxxhdpi/$1
    fi
echo " Done"
else
    echo "$1 not found."
fi
fi

2
Очень полезный скрипт! В любом случае, я бы использовал 67% (вместо 66%) для xhdpi. Это потому, что соотношение между xhdpi и xxhdpi равно 2/3, что при просмотре в процентах и ​​округлении дает 67. В противном случае, если использовать 66 и сказать, что разрешение ввода равно xxhdpi = 96 * 96, можно получить xhdpi = 63 * 63. вместо 64 * 64.
HaimS

Мы должны создать
каталог,

Пожалуйста, проверьте обновленный скрипт gist.github.com/Kishanjvaghela/8ec54f66c322d8d6940b4c0d1a58098d
Кишан Вагела

Очень полезно и хорошо работает. Я полагаю, вам не хватает одного файла в конце. Выдает ошибки на Bash 4.3.11
Mijo

Вы правы @Mijo, у Кишана был последний фантаст в его сущности, и я убрал его, глупый я
rdromao

23

РЕДАКТИРОВАТЬ:

Сайт теперь называется appicon.co


Я обычно использую assets.codly.io.
Он генерирует ресурсы локально в вашем браузере, без загрузки и загрузки.

введите описание изображения здесь


Он принимает только «изображение значка приложения (1024x1024») в качестве входных данных.
снижение активности

2
@MateuszKonieczny Сайт обновлен, есть еще одна вкладка для изображений, которая называется Наборы изображений для остальных изображений.
А.Зидан

Для андроида он генерирует только значок приложения, то есть манипулятор. Он также генерирует нарисованные иконки
Nivrutti Pawar

Каков ваш базовый размер дизайна на этом сайте? Мы должны выбрать 3x или 4x ??
К Прадип Кумар Редди

13

Просто нашел простой способ сделать это в новой Android Studio:

введите описание изображения здесь

введите описание изображения здесь


КинхКон, а что дальше? Можем ли мы выбрать другой ресурс?
CoolMind

Если вы хотите загрузить любое изображение, которое вы хотите, просто используйте опцию просмотра .. если это то, что вы имеете в виду.
Kohn1001

Да, это работает. Но, кажется, он делает необходимые цветные значки только в типе актива "Значки запуска". Таким образом, он также заменяет значок запуска. И помещает изображения в папки MIPMAP.
CoolMind

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

8

Я использую инструмент под названием «Набор иконок Android» в Eclipse для стандартных значков, таких как Launcher, ActionBar, значки вкладок и значки уведомлений. Вы можете запустить его из File -> New -> Other .. -> Android -> Android Icon Set. Самое приятное, что вы можете выбрать любой файл на вашем компьютере, и он автоматически поместит все изображения стандартных размеров в каталог вашего проекта.

введите описание изображения здесь


... вы также можете использовать веб-сайт, эквивалентный этому инструменту: android-ui-utils.googlecode.com/hg/asset-studio/dist/… (инструмент, описанный в этом ответе, лучше, поскольку он интегрирован непосредственно в Eclipse и автоматически разместит значки в нужных папках).
Booger

Поддерживает ли он «Общие иконки»?
Али Бехзадиан Неджад

Веб-инструмент, кажется, поддерживает это. Хотя я тоже не пользовался интернетом. Вы можете проверить эту ссылку: android-ui-utils.googlecode.com/hg/asset-studio/dist/…
Nitin Sethi

7
  1. Просто используйте https://romannurik.github.io/AndroidAssetStudio/index.html . Он может сделать набор иконок из изображения, позже вы можете скачать zip-файл.
  2. Или загрузите приложение для Windows по адресу https://github.com/redwarp/9-Patch-Resizer/releases. (не требует установки) и откройте значок.
  3. Также вы можете использовать плагин Android Drawable Importer, см. Ответы выше. Поскольку он заброшен, установите вилки. См. Почему Android Drawable Importer игнорирует выбор в AS 3.5 и далее или https://github.com/Vincent-Loi/android-drawable-importer-intellij-plugin .
  4. https://appicon.co/#image-sets .

2
Пока автор Android Drawable Importer не перестал быть AWOL, я вырубил временный установочный zip для последующих выпусков Android Studio.
Плохой неудачник

@ BadLoser, я видел вашу тему, спасибо! Я редко использую этот плагин, он содержит некоторые ошибки, поэтому, если они повторятся, попробую ваше решение.
CoolMind

Да - запись определенно на стене для этой старой вещи - но только до тех пор, пока AS Resource Manager полностью не прояснит это действие!
Плохой неудачник

4

Использовать Android Studio Image Asset

Перейти к:

 Project>res --> right click

 new> image asset

Затем установите:

-Icon type: Launcher Icons
-Asset type: Image
-Path: the/path/to/your/image
-Trim: No
-Padding: 0%
-Shape: None
-Effect: None

Выберите: Далее> Готово.

Now you will have your icon in the correct resolutions.

Визуальный пример:

РЕДАКТИРОВАТЬ: я рекомендую использовать изображения SVG для создания векторных рисунков, а затем использовать их на холсте, чтобы изменить их размер до нужного размера или просто изменить DP.

Вы можете получить иконки по умолчанию от Google или просто создать свой собственный

 Project>res --> right click
 new> vector asset

Затем установите:

-Asset type: Local file (SVG, PSD)
-Path: the/path/to/your/image
-Size: check Override to keep your aspect ratio.
-Chek enable auto mirroring for RTL Layout.

Выберите: Далее> Готово.

Теперь у вас будет значок, и вы сможете изменить размер, цвет и т. Д. введите описание изображения здесь


2

Существует также возможность использовать Vector Asset Studio в сочетании с Scalable Vector Graphics (SVG) . Android Studio позаботится об остальном за вас. Как говорится в официальной документации :

Vector Asset Studio помогает добавлять значки материалов и импортировать файлы масштабируемой векторной графики (SVG) в проект приложения как доступный для рисования ресурс. По сравнению с растровыми изображениями векторные рисунки могут уменьшить размер вашего приложения и изменить его размер без потери качества изображения. Они помогают вам легче поддерживать различные устройства Android с различными размерами экрана и разрешениями, потому что вы можете отображать один вектор для всех из них.

Я считаю это будущим подходом.

Пункт меню Vector Asset Studio

Снимок экрана студии "Вектор Актив"


2

Я написал скрипт Photoshop для создания PNG-файлов ic_launcher из PSD-файла. Просто проверьте ic_launcher_exporter .

Чтобы использовать его, просто скачайте его и используйте скрипт из фотошопа.

введите описание изображения здесь

И настройте, где вы хотите генерировать выходные файлы.

введите описание изображения здесь


1

Не на 100% автоматически, но я экономлю много времени, используя Photoshop Actions .

Например, для заданных xhdpiактивов я создаю задание для hdpiи mdpi, которое масштабируется до 66,66% и 44,44% соответственно. Затем я запускаю действия для всех изображений в папкеxhdpi .

Для изображений 512x512 все, что вам нужно сделать, - это рассчитать, в каком процентном соотношении вы должны масштабировать изображения для достижения xxhpi, xhdpi, hdpi и mdpi.


0

Я использовал все решения в этой теме, и с плагином легко работать Android Drawable Importer

Если вы используете Android Studio на MacOS, попробуйте выполнить следующие действия:

  • Нажмите меню панели Android Studio, затем выберите « Настройки» или нажмите кнопку Command +»,
  • Затем выберите Плагины
  • Нажмите Обзор репозиториев
  • Написать в поисковой колонке Android Drawable Importer
  • Нажмите Установить кнопку
  • А затем появляется диалоговое окно Restart, просто перезапустите Android Studio

После успешной установки плагина, для работы с этим плагином просто нажмите «Создать новое меню» и затем выберите « Пакетный Drawable Import» . Затем нажмите кнопку «плюс» или кнопку «Добавить», и выберите файл, который вы хотите сделать. А затем просто нажмите «ОК», и «ОК» делает все это.

Если вы запутались в моем слове, просто посмотрите учебник по изображениям из learningmechine .


2
На Android Drawable Importerрынке больше нет плагинов. Я пытался, Android Asset Importer but it crashesкогда я пытаюсь открыть его (Android Studio 3.6.1). Я закончил тем, что использовал appicon.co
flawyte

-1

Простой плагин в Android поможет вам Шаг 1. Перейдите в Настройки Шаг 2. Нажмите на Плагин Шаг 3. Найдите Android Drawable Importer Шаг 4. Установите плагин и перезапустите

Как пользоваться?

Перейдите в Файл> Создать> Пакетный импорт

наслаждаться


На Android Drawable Importerрынке Android Studio больше нет плагинов.
Майкер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.