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

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

16 ответов


Вариант #1: просто отправьте -xxhdpi drawables и пусть Android downsample их для вас во время выполнения (недостаток: будет работать только на довольно последних устройствах, где -xxhdpi известно).

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

Option #3: автоматизация процесса в графическом редакторе, за ответ ssantos.

Вариант #4: Напишите себе решение, используя что-то вроде ImageMagick.

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


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

enter image description here

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

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


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

1. Перейдите в раздел настройка > Плагины enter image description here

2.Поиск "android Drawable импортер" в строке поиска enter image description here

3.Он не будет показывать плагин по умолчанию, для поиска в интернете нажмите в "Browse" ссылке enter image description here

4.Затем установите плагин, он покажет загрузку .... иногда он может не показывать загрузку, поэтому не забудьте проверить в нижней части Android studio, он показывает загрузку. enter image description here

5. Теперь перезапустите Android studio

6. Как вы можете видеть в следующем screencap, есть только один drawable здесь enter image description here

7. теперь щелкните правой кнопкой мыши на папке drawable и перейдите к New>Batch Drawable Import enter image description here

8.  Now click on the add icon

9. Теперь выберите "сингл " изображение вы хотите различные варианты drawables.

enter image description here

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

11.Теперь нажмите ok, затем ok еще раз ..и тогда это займет несколько секунд, а затем вы волшебным образом получите все переменные drawables.enter image description here enter image description here


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

image baker

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

Downloaded images


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

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

#!/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
#---------------------------------------------------------------

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

    if [  = "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  -resize 67% drawable-xhdpi/
        convert  -resize 50% drawable-hdpi/
        convert  -resize 33% drawable-mdpi/
        mv  drawable-xxhdpi/
    fi
    echo " Done"
else
    echo " not found."
fi
fi

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

enter image description here

enter image description here


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

enter image description here


Я использую инструмент под названием android Icon, установленный в Eclipse для стандартных значков, таких как Launcher, ActionBar, Tab icons и notification icons. Вы можете запустить его из файла --> New --> Other.. -- >Android - > Набор Значков Android. Лучше всего то, что вы можете выбрать любой файл с Вашего компьютера, и он автоматически разместит все изображения стандартных размеров в каталоге проекта.

enter image description here


Я думаю, что инструмент, предоставляемый Redwarp, является лучшим! https://github.com/asystat/Final-Android-Resizer

нашел его в этом другой вопрос: https://stackoverflow.com/questions/10754523/is-there-any-tool-which-can-a-resize-png-image-into-a-image-for-ldpi-mdpi-hdp

Так как это первый результат в Google, я хотел бы добавить эту информацию здесь.


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

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

enter image description here

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

enter image description here


Мне повезло использовать этот плагин для photoshop:

регистрация здесь

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

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


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

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

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


  1. просто используйте https://romannurik.github.io/AndroidAssetStudio/index.html. Он может сделать набор иконок из изображения, позже вы можете скачать zip-файл.
  2. или загрузите приложение Windows по адресуhttps://github.com/redwarp/9-Patch-Resizer/releases (не нужно устанавливать) и откройте значок.

Используйте 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.

Visual Example:

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

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

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

затем set:

-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.

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

теперь у вас будет значок, и вы сможете изменить размер, цвет и т. д.. . enter image description here


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

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

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

Menu entry of the Vector Asset Studio

Screenshot of the Vector Asset Studio


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

Если вы используете Android Studio на MacOS, просто попробуйте этот шаг, чтобы войти:

  • выберите пункт меню Android Studio выберите предпочтения или нажмите кнопку команда + ,
  • выберите Плагины
  • клик обзор хранилища
  • напишите в поиске coloumn Android Drawable Импортер
  • клик установить
  • и затем отображается диалог перезапуска, просто перезапустите его Android Studio

после ur успеха установки плагина, чтобы работать с ним этот плагин просто нажмите кнопку Создать новое меню, а затем выберите Пакетный Drawable Импорт. Затем нажмите кнопку Плюс a.к. кнопка "Добавить" и выберите файл для создания drawable. А затем просто нажмите кнопку ОК и ОК drawable имеет сделать это все из них.

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