有没有办法从大规模的图像创buildxxhdpi,xhdpi,hdpi,mdpi和ldpi drawables?

有没有办法从大规模的图像自动创buildxxhdpi,xhdpi,hdpi,mdpi和ldpi drawables? 例如,假设我有一个512×512的图像,并且我想要在适当的文件夹中为Android支持的不同屏幕分辨率提供此图像的不同版本。

选项#1:只运送-xxhdpi drawables,让Android在运行时为你下载它们(缺点:只能在相当新的设备上工作,其中-xxhdpi是已知的)。

选项2:使用Android Asset Studio为您缩减采样。

选项#3:根据ssantos的答案,在graphics编辑器中自动执行该过程。

选项#4:使用类似ImageMagick的东西给自己编写一个解决scheme。

我使用名为Android Drawable Importer的Android Studio插件:

在这里输入图像描述

要在安装后使用它,请右键单击您的res / drawable文件夹并selectNew > Batch Drawable Import

然后通过+buttonselect你的图像,并设置分辨率为xxhdpi(或任何您的源图像的分辨率)。

我将尝试以逐步的方式解释这个过程,这样对任何人来说都是很容易理解的。

1.转到设置>插件 在这里输入图像描述

2.在search栏中search“Android Drawable Importer” 在这里输入图像描述

3.默认不显示插件 ,点击"Browse"链接在线search 在这里输入图像描述

4.然后安装插件,它会显示下载….有时它可能不会显示下载,所以一定要检查在Android工作室的底部,它显示下载。 在这里输入图像描述

5.现在重新启动android studio

6.在下面的screencap中可以看到,这里只有一个drawable 在这里输入图像描述

7.现在右键单击可绘制的文件夹并导航到新build>可批绘制导入 在这里输入图像描述

8.现在点击添加图标

9.现在select“单一”图像,你想要不同的绘制变化。

在这里输入图像描述

10.现在select原始图像的尺寸。 如果原始图像是xxhdpi,就像我的情况一样,select“xxhdpi”作为“Source Resoultion”。

11.现在按OK,然后再确定..然后它将需要几秒钟,然后你会奇迹般地得到所有可绘制的variables。 在这里输入图像描述 在这里输入图像描述

使用Image Baker等在线服务。

图像面包师

这很简单。 上传图片并下载适用于Android和iOS的处理资源。

下载的图像

根据CommonsWare的答案,使用ImageMagick(转换)的bash脚本:

由于Kishan Vaghela增加了文件夹创build和参数检查

 #!/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 "$1" ]; then echo " Creating different dimensions (dips) of "$1" ..." 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 67% drawable-xhdpi/$1 convert $1 -resize 50% drawable-hdpi/$1 convert $1 -resize 33% drawable-mdpi/$1 mv $1 drawable-xxhdpi/$1 fi echo " Done" else echo "$1 not found." fi fi 

刚刚在新的Android Studio中find了一个简单的方法:

在这里输入图像描述

在这里输入图像描述

我在Eclipse中使用了一个名为Android图标集的工具来获取标准图标,例如Launcher,ActionBar,Tab图标和通知图标。 你可以从文件 – >新build – >其他.. – > Android – > Android图标集启动它。 最好的部分是,你可以从你的电脑中select任何文件,它会自动将所有标准尺寸的图像放到你的项目目录中。

在这里输入图像描述

我认为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:

在这里检查

有一些工作正确命名图层和button状态。 但是,一旦你这样做,内置的macros是相当不错的。

否则,你可以在Photoshop中编写自己的macros,如果你有这方面的知识。

我写了一个Photoshop脚本从PSD文件创buildic_launcher PNG文件。 只要检查ic_launcher_exporter 。

要使用它,只需下载并使用Photoshop中的脚本。

在这里输入图像描述

并configuration你想要生成输出文件的位置。

在这里输入图像描述

不是100%自动,但我使用Photoshop操作节省了大量的时间。

例如,给定xhdpi资产,然后我为hdpimdpi创build一个任务,分别扩大到66.66%和44.44%。 然后我运行文件夹xhdpi上的所有图像的操作。

对于512×512的图像,您所要做的就是计算您的图像缩放比例,以实现xxhpi,xhdpi,hdpi和mdpi。

使用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 

select:下一步>完成。

 Now you will have your icon in the correct resolutions. 

视觉例子:

编辑:我build议使用SVG图像来创buildvectorDrawables,然后在canvas中使用它们来调整它们的正确大小,或者干脆改变DP。

您可以从Google获取默认图标,或者创build自己的图标

  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. 

select:下一步>完成。

现在你将有你的图标,你将能够改变大小,颜色等。 在这里输入图像描述

也可以将Vector Asset Studio与可缩放vectorgraphics(SVG)结合使用。 Android Studio将为您处理剩下的事情。 正如官方文件所说:

Vector Asset Studio可帮助您添加材质图标,并将可缩放vectorgraphics(SVG)文件作为可绘制资源导入到您的应用程序项目中。 与栅格图像相比,vector绘图可以减小应用程序的大小,并resize而不会损失图像质量。 它们可以帮助您更轻松地支持具有不同屏幕尺寸和分辨率的不同Android设备,因为您可以在所有设备上显示一个可绘制的vector。

我认为这是未来的方法。

Vector Asset Studio的菜单条目

Vector Asset Studio的屏幕截图

我通常使用assets.codly.io
它在您的浏览器本地生成资产,不上传,不下载。

在这里输入图像描述