Чи є спосіб створити малюнки xxhdpi, xhdpi, hdpi, mdpi та ldpi із великомасштабного зображення?


271

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


3
Якщо ви перебуваєте в Windows: github.com/delight-im/AndroidDravableResizer
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 Campa

@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:
Розробка

158

Оновлення :

Плагін згадувалося раніше був залишений, але він , очевидно , має вилку уточнений тут .

Стара відповідь :

Я використовую плагін Android Studio під назвою Android Drawable Importer:

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

Щоб використовувати його після встановлення, клацніть правою кнопкою миші папку res / dravable та виберіть New > Batch Drawable Import:

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


13
Дякую, але я використав "Batch Dravable Import" замість "Scaled Dravable".
Мальдер

Як @ user123456 говорить, що мені довелося використовувати Batch Drawable, оскільки масштабний Dravable не з’явився
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" як "Resoultion Source".

7. Тепер знову натисніть кнопку ОК, тоді добре. І тоді це займе кілька секунд, і тоді ви отримаєте магічне отримання всіх змінних рисунків.введіть тут опис зображення

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


3
Цей плагін хороший, але початковий розмір повинен мати достатню роздільну здатність, щоб зберегти хорошу якість для активу. Я думаю, краще спочатку попросити у дизайнера активів xxxhdpi, а потім зменшити їх.
narko

@LaxmanBhattarai, я хочу підтримувати свою програму лише в пейзажі лише на планшеті. Отже, відповідно до вашої відповіді, яку папку для малюнків я маю для зображень, щоб підтримувати всі планшетні пристрої? Чи можете ви, будь ласка, повідомити мене?
Hiren Patel

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

Параметр "Імпортер драйверів для пакетів іконок" використовує іконки "Матеріал / 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

Баш сценарій, що використовує ImageMagick (конвертувати) відповідно до відповіді CommonsWare:

Додано створення папки та перевірку аргументів завдяки Kishan 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
#
# 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
Kishan Vaghela

Дуже корисно, і працює добре. Я думаю, вам не вистачає одного фі в кінці. Дає помилки на bash 4.3.11
Mijo

Ви маєте рацію @Mijo, Кішань насправді мав останній фі в своїй суті, і я його зняв, нерозумно
rdromao

23

Редагувати:

Зараз веб-сайт називається appicon.co


Зазвичай я використовую sredstava.codly.io
Він генерує активи локально у вашому браузері, не завантажуючи, не завантажуючи.

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


Він приймає лише "зображення піктограми додатка (1024x1024" як вхід.)
зменшення активності

2
@MateuszKonieczny Веб-сайт оновлюється, Є ще одна вкладка для зображень під назвою Набори зображень для решти зображень.
А.Зідан

Для android він генерує лише піктограму програми, тобто manip. Він також генерує значки для
малювання

Який вибір базового розміру дизайну на цьому веб-сайті ?? Ми повинні вибрати 3x або 4x ??
K Pradeep Kumar Reddy

13

Щойно знайшов простий спосіб зробити це в новій Android Studio:

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

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


KinhKohn, а що далі? Чи можемо ми вибрати інший ресурс?
CoolMind

Якщо ви хочете завантажити будь-яке зображення, просто скористайтеся опцією перегляду .. якщо це саме ви маєте на увазі.
Kohn1001

Так, це працює. Але здається, що потрібні кольорові значки створюються лише у типі об’єкта "Піктограми запуску". Отже, він також замінює піктограму запуску. І розміщує зображення в папках mipmap.
CoolMind

1
Зауважте, що він підходить лише в тому випадку, якщо ви хочете додати піктограму.
зменшення активності

8

Я використовую інструмент під назвою Android Icon Set в Eclipse для таких стандартних іконок, як Launcher, ActionBar, Tab і значки сповіщень. Ви можете запустити його з Файл -> Нове -> Інше .. -> Android -> Набір іконок Android. Найкраще, що ви можете вибрати будь-який файл зі свого комп’ютера, і він автоматично розмістить усі зображення стандартних розмірів у вашому каталозі проекту.

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


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

Чи підтримує він "Загальні іконки"?
Алі Бехзадян Неджад

Здається, веб-інструмент його підтримує. Я теж не користувався Інтернетом. Ви можете ознайомитись з цим посиланням: android-ui-utils.googlecode.com/hg/asset-studio/dist/…
Нітін Сеті

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 ігнорує вибір у AS 3.5 далі або https://github.com/Vincent-Loi/android-dravable-importer-intellij-plugin .
  4. https://appicon.co/#image-sets .

2
Поки автор Android Drawable Importer не перестане бути AWOL, я збив тимчасовий інсталяційний поштовий індекс для наступних релізів студій Android.
поганий програш

@BadLoser, я побачив вашу тему, дякую! Я дуже рідко використовую цей плагін, він містить деякі помилки, тому, якщо вони повторяться, спробуйте ваше рішення.
CoolMind

Так - написання напевно стоїть на стіні для цієї старої речі - але не до того часу, поки AS Resource Manager повністю не очистить її дію!
поганий програш

4

Використовуйте зображення для Android Studio

Йти до:

 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.

Візуальний приклад:

EDIT: Я рекомендую використовувати SVG-зображення для створення Vector Drawables, а потім використовувати їх на полотні, щоб змінити розмір до потрібного розміру або просто змінити 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

Також є можливість використовувати Studio Asset Studio у поєднанні зі масштабованою векторною графікою (SVG) . Android Studio буде обробляти решту за вас. Як говориться в офіційній документації :

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

Я вважаю це майбутнім підходом.

Запис у меню Studio Asset Studio

Знімок екрана студії Vector Asset


2

Я написав сценарій Photoshop, щоб створити файли ic_launcher png з файлу 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
  • Натисніть Встановити кнопку
  • Після цього з'явиться діалогове вікно Перезапуск, просто перезавантажте Android Studio

Після успіху ури встановіть плагін, щоб опрацювати цей плагін, просто натисніть кнопку Створити нове меню, а потім виберіть Імпорт пакетного драйвера. . Потім натисніть кнопку плюс інакше кнопку Додати і перейдіть до вибору файлу, щоб зробити його малювальним. А потім просто натисніть «ОК» і «Ок», що малюється, це зробить їх усіма.

Якщо ви плутаєте моє слово, просто перегляньте навчальний посібник із навчальної машини .


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

-1

Простий плагін в Android допоможе вам Крок 1. Перейдіть до пункту Налаштування Крок 2. Клацніть Крок 3. Крок 3. Пошук Android Dravable Importer Крок 4. Встановіть плагін та перезапустіть.

Як використовувати?

Перейдіть у меню Файл> Створити> Імпорт пакетного малюнка

Насолоджуйтесь


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