309

有没有办法自动从大型图像创建 xxhdpi、xhdpi、hdpi、mdpi 和 ldpi 可绘制对象?例如,假设我有一个 512x512 的图像,并且我想在适当的文件夹中为 Android 支持的不同屏幕分辨率提供不同版本的图像。

4

17 回答 17

230

选项 #1:只需发送-xxhdpi可绘制对象并让 Android 在运行时为您对它们进行下采样(缺点:仅适用于-xxhdpi已知的较新的设备)。

选项 #2:使用Android Asset Studio为您下采样。

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

选项#4:为自己编写一个解决方案,使用 ImageMagick 之类的东西。

选项 #5:使用图像烘焙器

于 2013-10-05T10:33:16.967 回答
164

更新

前面提到的插件已被放弃,但它显然在这里有一个最新的分支。

旧答案

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

在此处输入图像描述

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

然后通过+按钮选择您的图像并将分辨率设置为 xxhdpi(或任何源图像的分辨率)。

于 2015-07-07T17:21:39.357 回答
106

更新:

安装插件的旧方法不再起作用,但原始插件的分支在这里仍然有效。手动安装插件后,您仍然可以遵循此答案。

如果您想要快速简便的方法,请访问https://www.img-bak.in/https://appicon.co/,它们也适用于 iOS。

我将尝试逐步解释该过程,以便任何人都易于理解。

1. 按照自述文件中的说明手动安装插件

2.重启安卓工作室

3. 正如您在下面的屏幕截图中看到的,这里只有一个可绘制对象

在此处输入图像描述

4.现在右键单击drawable文件夹并导航到New>Batch Drawable Import

在此处输入图像描述

8. 现在点击添加图标

5. 现在选择你想要不同的drawables变体的“单一”图像。

在此处输入图像描述

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

7. 现在按 ok 然后再次 .. 然后它需要几秒钟,然后你会神奇地得到所有可绘制的变量。在此处输入图像描述

在此处输入图像描述

于 2016-05-19T10:58:08.183 回答
82

使用Image Baker等在线服务。

形象烘焙师

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

下载的图像

注意:Image Baker 是我和我的朋友创建的免费服务。

于 2016-11-27T15:07:44.737 回答
42

根据 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
于 2014-08-18T01:02:47.260 回答
24

编辑:

该网站现在称为appicon.co


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

在此处输入图像描述

于 2017-11-07T17:48:36.243 回答
13

刚刚在新的 Android Studio 中找到了一种简单的方法:

在此处输入图像描述

在此处输入图像描述

于 2015-11-07T19:03:33.363 回答
8

我在 Eclipse 中使用了一个名为 Android Icon Set 的工具来处理标准图标,例如 Launcher、ActionBar、Tab 图标和通知图标。您可以从 File --> New --> Other.. --> Android --> Android Icon Set 启动它。最好的部分是您可以从您的计算机中选择任何文件,它会自动将所有标准尺寸的图像放入您的项目目录中。

在此处输入图像描述

于 2013-10-05T12:18:21.920 回答
8
  1. 只需使用https://romannurik.github.io/AndroidAssetStudio/index.html。它可以从图像中制作一组图标,稍后您可以下载一个 zip 文件。
  2. 或者在https://github.com/redwarp/9-Patch-Resizer/releases下载一个 Windows 应用程序(不需要安装)并打开一个图标。
  3. 您也可以使用插件Android Drawable Importer,请参阅上面的答案。因为它被废弃了,安装forks。请参阅为什么 Android Drawable Importer 在 AS 3.5 或更高版本中忽略选择https://github.com/Vincent-Loi/android-drawable-importer-intellij-plugin
  4. https://appicon.co/#image-sets
于 2016-02-16T08:39:07.030 回答
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.

视觉示例:

编辑:我建议使用 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.

选择:下一步>完成。

现在您将拥有您的图标,您将能够更改大小、颜色等。 在此处输入图像描述

于 2017-07-11T07:54:49.190 回答
2

不是 100% 自动的,但我使用Photoshop Actions节省了很多时间。

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

对于 512x512 图像,您所要做的就是计算应缩放图像以达到 xxhpi、xhdpi、hdpi 和 mdpi 的百分比。

于 2013-10-05T10:31:48.317 回答
2

我编写了一个 Photoshop 脚本来从 PSD 文件创建 ic_launcher png 文件。只需检查ic_launcher_exporter

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

在此处输入图像描述

并配置要生成输出文件的位置。

在此处输入图像描述

于 2015-04-23T01:39:04.077 回答
2

还可以将 Vector Asset Studio 与Scalable Vector Graphics (SVG)结合使用。Android Studio 将为您处理剩下的事情。正如官方文档所说:

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

我认为这是未来的方法。

Vector Asset Studio 的菜单项

Vector Asset Studio 的屏幕截图

于 2016-02-23T21:53:33.140 回答
2

最简单的方法是使用资源管理器

在此处输入图像描述

然后你可以选择每个密度

在此处输入图像描述

导入后你可以看到这张图片的6个不同版本

在此处输入图像描述

于 2020-08-24T17:09:38.807 回答
2

选项#5:使用图像面包师是片状的。我转换了两个图像,它停止了。我设法转换了 10 张图片:https ://nsimage.brosteins.com/

于 2021-08-30T15:24:34.093 回答
0

我在这个线程中一直使用这种解决方案,并且使用插件Android Drawable Importer很容易

如果您在 MacOS 上使用 Android Studio,只需尝试此步骤即可进入:

  • 单击栏菜单Android Studio然后选择Preferences或点击按钮Command + ,
  • 然后选择插件
  • 单击浏览存储库
  • 在搜索栏写Android Drawable Importer
  • 点击安装按钮
  • 然后对话框重新启动显示,只需重新启动Android Studio

成功安装插件后,要使用此插件,只需单击 create New 菜单,然后选择Batch Drawable Import。然后单击加号按钮又名添加按钮,然后选择您的文件以使其可绘制。然后只需单击“确定”即可,可绘制对象已全部完成。

如果您对我的话感到困惑,请查看learningmechine中的图像教程。

于 2018-07-25T04:24:33.737 回答
-1

Android中的一个简单插件将帮助您步骤1.转到设置步骤2.单击插件步骤3.搜索Android Drawable Importer步骤4.安装插件并重新启动

如何使用?

转到文件>新建>批量可绘制导入

享受

于 2020-04-25T23:14:40.253 回答