有没有一种方法可以自动从大型图像创建xxhdpi,xhdpi,hdpi,mdpi和ldpi可绘制对象?例如,假设我有一个512x512的图片,并且想要在适当的文件夹中针对Android支持的不同屏幕分辨率使用该图片的不同版本。
res -> New -> Image Asset
,选择Launcher Icons (legacy)
有没有一种方法可以自动从大型图像创建xxhdpi,xhdpi,hdpi,mdpi和ldpi可绘制对象?例如,假设我有一个512x512的图片,并且想要在适当的文件夹中针对Android支持的不同屏幕分辨率使用该图片的不同版本。
res -> New -> Image Asset
,选择Launcher Icons (legacy)
Answers:
选项#1:只需-xxhdpi
交付可绘制对象,然后让Android在运行时为您对其进行下采样(缺点:仅适用于-xxhdpi
已知的较新设备)。
选项2:使用Android Asset Studio为您降低采样率。
选项3:根据ssantos的回答,在图形编辑器中自动执行该过程。
选项4:使用ImageMagick之类的脚本编写自己的解决方案。
选项5:使用图像烘焙师
minSdkVersion
8岁或更高时。如果您要支持的设备比以前更旧,则还需要hdpi
一个设备,因为API Level 7及以下版本xhdpi
都不xxhdpi
存在。现在,您是否喜欢降低采样后的可绘制对象的外观完全是另一回事……
xxhdpi
不存在的评论,我认为这是不正确的。在内部,Android使用DPI数字(160、320、480等)而不是字符串作为资源限定符。如果系统DPI为160,并且找到640图像,则它将对4进行下采样,而无需“知道”其文本限定符。我们已经将仅存在于xxxhdpi
(Android 4.3)文件夹中的资源发送到Android 2.3设备。
更新资料:
前面提到的插件已经被废弃了,但它显然有一个上最新叉这里。
旧答案:
我使用名为的Android Studio插件Android Drawable Importer
:
要在安装后使用它,请右键单击您的res / drawable文件夹,然后选择 New > Batch Drawable Import
:
然后通过+
按钮选择图像并将“分辨率”设置为xxhdpi(或源图像的任何分辨率)。
旧的安装插件的方式不再有效,但是原始插件的分支在这里仍然起作用。手动安装插件后,您仍然可以按照此答案进行操作。
根据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启动它。最好的部分是您可以从计算机中选择任何文件,它将自动将所有标准尺寸的图像放入您的项目目录中。
Android Drawable Importer
,请参见上面的答案。由于已废弃,因此请安装货叉。请参阅Android Drawable Importer为什么会在AS 3.5及更高版本中忽略选择,或参见https://github.com/Vincent-Loi/android-drawable-importer-intellij-plugin。使用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 Drawable,然后在画布中使用它们将它们调整为正确的大小或简单地更改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.
选择:下一步>完成。
也可以将Vector Asset Studio与可伸缩矢量图形(SVG)结合使用。Android Studio将为您处理其余的工作。如官方文档所述:
Vector Asset Studio可帮助您添加材质图标并将可伸缩矢量图形(SVG)文件作为可绘制资源导入到您的应用程序项目中。与光栅图像相比,矢量绘制对象可以减小应用程序的大小,并可以调整其大小而不会降低图像质量。它们可以帮助您更轻松地支持具有不同屏幕尺寸和分辨率的不同Android设备,因为您可以在所有设备上显示一个可绘制的矢量。
我认为这是未来的方法。
我写了一个Photoshop脚本从PSD文件创建ic_launcher png文件。只需检查ic_launcher_exporter即可。
要使用它,只需下载它并使用photoshop中的脚本即可。
并配置要在何处生成输出文件。
并非100%自动执行,但我使用Photoshop Actions节省了大量时间。
例如,给定xhdpi
资产,然后我为hdpi
和创建一个任务mdpi
,分别缩放到66.66%和44.44%。然后我对文件夹中的所有图像运行操作xhdpi
。
对于512x512的图像,您要做的就是计算缩放图像以达到xxhpi,xhdpi,hdpi和mdpi的百分比。
我在此线程中一直使用解决方案,并且使用Android Drawable Importer插件很容易
如果您在MacOS上使用Android Studio,只需尝试以下步骤即可:
成功安装插件后,要运行此插件,只需单击创建新菜单,然后选择批量绘制可导入。然后单击加号按钮(也称为添加按钮),然后选择要绘制的文件。然后只需单击“确定”,然后“确定”可绘制对象就全部包含了。
如果您对我的话感到困惑,请参阅learningmechine的图像教程。
Android Drawable Importer
市场上没有插件了。我尝试了Android Asset Importer but it crashes
,当我尝试打开它(的Android 3.6.1工作室)。我最终使用了appicon.co
Android中的一个简单插件将为您提供帮助。步骤1.转到设置步骤2.单击插件步骤3.搜索Android Drawable Importer步骤4.安装插件并重新启动
如何使用?
转到文件>新建>批处理可绘制导入
请享用
Android Drawable Importer
Android Studio市场中不再有插件。