有没有办法自动从大型图像创建 xxhdpi、xhdpi、hdpi、mdpi 和 ldpi 可绘制对象?例如,假设我有一个 512x512 的图像,并且我想在适当的文件夹中为 Android 支持的不同屏幕分辨率提供不同版本的图像。
17 回答
选项 #1:只需发送-xxhdpi
可绘制对象并让 Android 在运行时为您对它们进行下采样(缺点:仅适用于-xxhdpi
已知的较新的设备)。
选项 #2:使用Android Asset Studio为您下采样。
选项 #3:根据ssantos 的回答,在图形编辑器中自动执行该过程。
选项#4:为自己编写一个解决方案,使用 ImageMagick 之类的东西。
选项 #5:使用图像烘焙器
更新:
前面提到的插件已被放弃,但它显然在这里有一个最新的分支。
旧答案:
我使用名为的 Android Studio 插件Android Drawable Importer
:
要在安装后使用它,请右键单击您的 res/drawable 文件夹并选择New > Batch Drawable Import
:
然后通过+
按钮选择您的图像并将分辨率设置为 xxhdpi(或任何源图像的分辨率)。
更新:
安装插件的旧方法不再起作用,但原始插件的分支在这里仍然有效。手动安装插件后,您仍然可以遵循此答案。
如果您想要快速简便的方法,请访问https://www.img-bak.in/或https://appicon.co/,它们也适用于 iOS。
我将尝试逐步解释该过程,以便任何人都易于理解。
1. 按照自述文件中的说明手动安装插件
2.重启安卓工作室
3. 正如您在下面的屏幕截图中看到的,这里只有一个可绘制对象
4.现在右键单击drawable文件夹并导航到New>Batch Drawable Import
5. 现在选择你想要不同的drawables变体的“单一”图像。
6. 现在选择原始图像的尺寸。如果原始图像是 xxhdpi,就像我的情况一样,请选择“xxhdpi”作为“Source Resoultion”。
7. 现在按 ok 然后再次 .. 然后它需要几秒钟,然后你会神奇地得到所有可绘制的变量。
根据 CommonsWare 的回答,使用 ImageMagick(转换)的 bash 脚本:
感谢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
我在 Eclipse 中使用了一个名为 Android Icon Set 的工具来处理标准图标,例如 Launcher、ActionBar、Tab 图标和通知图标。您可以从 File --> New --> Other.. --> Android --> Android Icon Set 启动它。最好的部分是您可以从您的计算机中选择任何文件,它会自动将所有标准尺寸的图像放入您的项目目录中。
- 只需使用https://romannurik.github.io/AndroidAssetStudio/index.html。它可以从图像中制作一组图标,稍后您可以下载一个 zip 文件。
- 或者在https://github.com/redwarp/9-Patch-Resizer/releases下载一个 Windows 应用程序(不需要安装)并打开一个图标。
- 您也可以使用插件
Android Drawable Importer
,请参阅上面的答案。因为它被废弃了,安装forks。请参阅为什么 Android Drawable Importer 在 AS 3.5 或更高版本中忽略选择或https://github.com/Vincent-Loi/android-drawable-importer-intellij-plugin。 - https://appicon.co/#image-sets。
使用 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.
编辑:我建议使用 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.
选择:下一步>完成。
不是 100% 自动的,但我使用Photoshop Actions节省了很多时间。
例如,给定资产,然后我为和xhdpi
创建一个任务,该任务分别扩展到 66.66% 和 44.44%。然后我对文件夹上的所有图像运行操作。hdpi
mdpi
xhdpi
对于 512x512 图像,您所要做的就是计算应缩放图像以达到 xxhpi、xhdpi、hdpi 和 mdpi 的百分比。
我编写了一个 Photoshop 脚本来从 PSD 文件创建 ic_launcher png 文件。只需检查ic_launcher_exporter。
要使用它,只需下载它并使用 Photoshop 中的脚本。
并配置要生成输出文件的位置。
还可以将 Vector Asset Studio 与Scalable Vector Graphics (SVG)结合使用。Android Studio 将为您处理剩下的事情。正如官方文档所说:
Vector Asset Studio 可帮助您添加材质图标并将可缩放矢量图形 (SVG) 文件作为可绘制资源导入您的应用项目。与光栅图像相比,矢量绘图可以减小应用程序的大小并在不损失图像质量的情况下调整大小。它们可以帮助您更轻松地支持具有不同屏幕尺寸和分辨率的不同 Android 设备,因为您可以在所有设备上显示一个可绘制的矢量。
我认为这是未来的方法。
选项#5:使用图像面包师是片状的。我转换了两个图像,它停止了。我设法转换了 10 张图片:https ://nsimage.brosteins.com/
我在这个线程中一直使用这种解决方案,并且使用插件Android Drawable Importer很容易
如果您在 MacOS 上使用 Android Studio,只需尝试此步骤即可进入:
- 单击栏菜单Android Studio然后选择Preferences或点击按钮Command + ,
- 然后选择插件
- 单击浏览存储库
- 在搜索栏写Android Drawable Importer
- 点击安装按钮
- 然后对话框重新启动显示,只需重新启动Android Studio
成功安装插件后,要使用此插件,只需单击 create New 菜单,然后选择Batch Drawable Import。然后单击加号按钮又名添加按钮,然后选择您的文件以使其可绘制。然后只需单击“确定”即可,可绘制对象已全部完成。
如果您对我的话感到困惑,请查看learningmechine中的图像教程。
Android中的一个简单插件将帮助您步骤1.转到设置步骤2.单击插件步骤3.搜索Android Drawable Importer步骤4.安装插件并重新启动
如何使用?
转到文件>新建>批量可绘制导入
享受