有没有办法从大尺寸图像创建xxhdpi,xhdpi,hdpi,mdpi和ldpi drawables?

Ali*_*jad 242 android

有没有办法自动从大尺寸图像创建xxhdpi,xhdpi,hdpi,mdpi和ldpi drawables?例如,假设我有一个512x512的图像,我希望在适当的文件夹中为Android支持的不同屏幕分辨率提供不同版本的此图像.

Com*_*are 169

选项#1:只需运送-xxhdpidrawables并让Android在运行时为您下采样(缺点:仅适用于最近的设备,-xxhdpi已知的地方).

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

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

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

选项#5:使用图像面包师

  • 选项4:使用ImageMagick的脚本解决方案[此处](http://stackoverflow.com/questions/19196616/is-there-a-way-to-create-xxhdpi-xhdpi-hdpi-mdpi-and-ldpi-drawables- from-a-lar / 25355105#25355105) (2认同)

Ada*_*hns 148

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

在此输入图像描述

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

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

  • 谢谢,但我使用了'Batch Drawable Import'而不是'Scaled Drawable'. (13认同)
  • 我设法[复活](/sf/ask/4190993411/#59977314)这个可爱的插件在 AS 3.6 下,尽管未经测试,也可能在 AS 3.5 下。 (3认同)
  • 该插件似乎不再维护 - 2016 年最后一次提交(https://github.com/winterDroid/android-drawable-importer-intellij-plugin),崩溃报告没有任何响应... (2认同)
  • @PrajwalW,更新了答案以提及最新的分叉。 (2认同)

erl*_*man 92

我会尝试逐步解释这个过程,这样对任何人来说都很容易理解.

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

2.在搜索栏中搜索"Android Drawable Importer" 在此输入图像描述

3.默认情况下不会显示该插件,要在线搜索,请单击"Browse"链接 在此输入图像描述

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

5.现在重启android studio

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

7.现在右键单击drawable文件夹并导航到New> Batch Drawable Import 在此输入图像描述

8.现在单击添加图标

9.现在选择"单一"图像,您需要不同的可绘制变体.

在此输入图像描述

10.现在选择原始图像的尺寸.如果原始图像是xxhdpi,就像我的情况一样,选择"xxhdpi"作为"Source Resoultion".

11.现在按ok然后再确定..然后它将需要几秒钟然后你会神奇地获得drawables的所有变量.在此输入图像描述 在此输入图像描述

  • 这个插件很好,但原始大小必须有足够的分辨率才能保持资产的良好质量.我想最好先向设计师询问xxxhdpi资产,然后将其缩小. (3认同)
  • 这个插件似乎不再维护 - 最后一次提交是在 2016 年(https://github.com/winterDroid/android-drawable-importer-intellij-plugin),崩溃报告没有任何响应...... (2认同)

Asi*_*K T 62

使用Image Baker等在线服务.

图像面包师

这很简单.上传图像并下载Android和iOS的已处理资源.

下载的图像

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

  • 是的它没有用.它仍然是"上传图片" (3认同)

rdr*_*mao 36

根据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
Run Code Online (Sandbox Code Playgroud)

  • 非常有用的脚本!无论如何,我将使用67%(而不是66%)进行xhdpi。这是因为xhdpi与xxhdpi之比为2/3,按百分比四舍五入后得出67。否则,如果使用66并说输入的分辨率为xxhdpi = 96 * 96,则xhdpi = 63 * 63而不是64 * 64。 (2认同)

A.Z*_*dan 18

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

在此输入图像描述

  • @MateuszKonieczny网站已更新,图像集的另一个选项卡用于其余图像. (2认同)

Koh*_*001 10

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

在此输入图像描述

在此输入图像描述

  • 请注意,仅当您要添加图标时才适用。 (2认同)

Coo*_*ind 8

  1. 只需使用https://romannurik.github.io/AndroidAssetStudio/index.html。它可以从图像制作一组图标,稍后您可以下载一个 zip 文件。
  2. 或者在https://github.com/redwarp/9-Patch-Resizer/releases下载 Windows 应用程序(不需要安装)并打开一个图标。
  3. 您也可以使用插件Android Drawable Importer,请参阅上面的答案。因为废弃,所以安装fork。请参阅为什么 Android Drawable Importer 忽略 AS 3.5 以后的选择https://github.com/Vincent-Loi/android-drawable-importer-intellij-plugin
  4. https://appicon.co/#image-sets

  • 在 _Android Drawable Importer_ 的作者不再擅离职守之前,我已经为以后的 Android studio 版本制作了一个临时[安装 zip](/sf/ask/4190993411/)。 (2认同)

Nit*_*thi 7

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

在此输入图像描述


Car*_*OSX 5

使用 Android Studio 图像资源

去:

 Project>res --> right click

 new> image asset
Run Code Online (Sandbox Code Playgroud)

然后设置:

-Icon type: Launcher Icons
-Asset type: Image
-Path: the/path/to/your/image
-Trim: No
-Padding: 0%
-Shape: None
-Effect: None
Run Code Online (Sandbox Code Playgroud)

选择:下一步>完成。

Now you will have your icon in the correct resolutions.
Run Code Online (Sandbox Code Playgroud)

视觉示例:

编辑:我建议使用 SVG 图像来创建矢量可绘制对象,然后在画布中使用它们将其调整为正确的大小或简单地更改 DP。

您可以从 Google 获取默认图标,也可以创建自己的图标

 Project>res --> right click
 new> vector asset
Run Code Online (Sandbox Code Playgroud)

然后设置:

-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.
Run Code Online (Sandbox Code Playgroud)

选择:下一步>完成。

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


Ali*_*jad 2

我正在使用“Android Asset Studio”。现在我正在使用IconKitchen,它是 Android Asset Studio 的后继者,它是一种为 Android、iOS、Web、Windows、Linux 和 Mac 制作高度可定制的应用程序图标的绝佳新方法。