【问题标题】:Fast ways to import drawables in Android Studio?在 Android Studio 中导入绘图的快速方法?
【发布时间】:2015-04-14 17:01:16
【问题描述】:

在 Android 项目的某个时刻,您需要在 res/drawable 目录中导入一些可绘制对象 - 无论是工具栏图标、图像、UI 功能。大多数情况下,您会针对最常见的限定符(drawable-hdpidrawable-mdpidrawable-xdpidrawable-xxdpi...)缩放图像。

所以我们需要为每个可绘制对象进行三、四、甚至五个文件复制/粘贴:

external_dir/drawable-mdpi/file.png   ->  my_package/drawable-mdpi/file.png
external_dir/drawable-hdpi/file.png   ->  my_package/drawable-hdpi/file.png
external_dir/drawable-xdpi/file.png   ->  my_package/drawable-xdpi/file.png
external_dir/drawable-xxdpi/file.png  ->  my_package/drawable-xxdpi/file.png

如果您必须导入多张图片,那会很烦人。是否有一种简单快捷的方法可以将这四个file.png 实例直接转移到相应的包文件夹中? IDE中实现的一些功能?一些简单的解决方法?

到目前为止,我的工作流程是:

  • 从OS文件管理器复制/粘贴,从外部目录到包,然后刷新Android Studio中的资源文件。这意味着打开每个符合条件的子目录,因此需要四步;
  • 从操作系统文件管理器,移动到external_dir,搜索file.png,在一个列表中获取四个实例,拖放到Android Studio,然后为每张图片右键单击导航栏,Copy,和Paste在对应的包目录下。没有更好!

有什么建议吗?

编辑 - 当然,我并不是真的在寻求“建议” - 我想知道是否有办法将移动次数减少到一个(或这样)。

【问题讨论】:

  • 在 Windows 资源管理器中,我只是选择并复制了四个可绘制目录,然后将它们粘贴到 res 目录中。所以我“覆盖可绘制目录”。完美运行。
  • 我对 Eclipse 怀念的一件事。我使用了一个资产创建器,它将您的新资产作为根目录为“res”的 zip 文件提供。在 Eclipse 中,我过去只是将这个根拖放到项目资源管理器中的应用程序节点上,它会复制新内容而不删除旧内容。给了我一个“哦,他妈的!!!”第一次,因为它确实警告您它将替换整个目录...

标签: android android-studio android-resources


【解决方案1】:

【讨论】:

  • 谢谢。我接受了这个答案,因为它很好地回答了一个在不同情况下也很有用的工具。
  • 好答案。完美
  • 为什么使用它会使我的应用程序滞后。我有一张图像,我使用此软件对其进行转换。但它使我的应用程序非常滞后
  • @DragonFire,是的,我面临同样的问题。
  • 我在 3.6.1 中也面临同样的问题
【解决方案2】:

自 Android Studio 3.4 以来,这变得容易多了。 只需转到Resource Manager-选项卡并单击小添加按钮add resources to the module。 [

然后选择您要导入的drawable。 如果您将可绘制对象放置在与限定符(drawable-mdpi、drawable-hdpi.drawable-xhdpi 等)具有相同名称的文件夹中,该工具将自动知道要添加它们。

在我看来,唯一缺少的是将可绘制对象添加到特定的 flavorDimension。

【讨论】:

    【解决方案3】:

    我在 2017 年 1 月 16 日的回答。

    两年后,Android Studio 有了导入Image Assets 的方法。但我想添加一条新评论。 Android现在支持Vectors,所以我们不用担心不同的分辨率。我建议使用VectorVectorDrawable

    只需在Project -> New -> Vector Asset 中右键单击您的应用名称。

    按照向导操作即可。

    最好的问候,佩德罗。

    我在 2015 年 2 月 18 日的回答。

    如果我没有误解,这就是我在 Android Studio (AS) 项目中所做的。

    我发现我们只需要导入最高分辨率的资源; AS 将为您缩放它们。我要求我的设计师只生成 xxhdpi 文件,然后。

    您转到Project 导航器中的/res 文件夹,右键单击并选择New -> Image Asset

    Asset Studio 会弹出

    你可以在那里,

    • 选择您的资产类型

    [启动器图标、操作栏图标、通知图标]

    • 浏览您的原始文件
    • 为您的资源命名

    完成所有信息后。您的资源将导入 AS。

    作为一般说明。对于启动器图标以外的内部图标,我选择了“启动图标”类型,它们可以正常工作。

    希望对您有所帮助。

    最好的,佩德罗。

    【讨论】:

    • @miav 有点,我的意思是 Android 强制它生成的图标是该图标类型的正确大小(启动器 = 48dp,操作栏 = 32dp,通知 = 24dp)。如果您有一个 36dp x 36dp (108x108px @ xxhdpi) 的自定义图标,并且您选择启动器,它生成的图标将是 48x48dp (144x144px @ xxhdpi),这不是您要导入的大小。我在第一次尝试使用 AS 导入时犯了同样的错误,后来意识到 AS 放入的图标不是我开始时在 dp 中的大小。
    • @Steven 知道了,很高兴知道。如果可以在 dps 中设置所需的大小,这将是一个非常完整的工具。
    • @PedroVarela 不幸的是我没有答案(这就是我最终解决这个问题的方式)。我尝试了接受的答案中引用的插件,但看起来它在 AS 1.0.2 中有一个错误并且没有显示出来,这是在 GitHub 中针对它记录的。
    • @LSG 将 PNG 转换为 SVG 这不是您必须要做的。您希望通过 Adob​​e Illustration、Affinity Designer 等编辑器软件创建 SVG 文件。您必须创建资源的矢量化版本。如果您不具备这些技能,那么有很多选择可以找到 SVG 资产,例如 Google 有一些预定义的矢量,您可以在您的项目中使用它们 material.io/resources/icons/?style=baseline。另请阅读本指南。 developer.android.com/studio/write/vector-asset-studio
    • @LSG 这可能太多了。我不是平面设计师,也不熟悉这些工具。您在 android 上的 SVG 不能超过 200 x 200 dp,因此请针对该尺寸进行设计。我不知道你的错误是什么,所以很难知道发生了什么。您必须将 SVG 导入 android studio,阅读指南。你不能在你的项目中使用你的原始 SVG。祝你好运。
    【解决方案4】:

    正如 Rob Meeuwisse 在上面的评论中提到的,您可以通过一次复制和粘贴操作来完成。您可以在操作系统文件管理器中同时选择所有四个drawable-XXXX 文件夹(不是图像本身!),而不是一个一个地复制和粘贴每个文件(@987654322 @-clicking 在 Windows/Linux 或 Command-clicking 在 OS X),复制所有这些文件夹,然后将它们粘贴到 Android Studio 中的 res 文件夹中。

    图像将自动粘贴到res 中适当的可绘制文件夹中。这是因为如果 Android Studio 注意到您正在复制和粘贴项目中已经存在的文件夹,它会简单地使用现有文件夹并粘贴缺少的内容,而不是替换/丢弃已经存在的文件。

    【讨论】:

    • 是的 - 但如果您的 drawable-XXXX 文件夹有数百个文件,只需要导入其中一个文件(这对我来说是最常见的情况,因为我倾向于从材料中导入图标)套)
    【解决方案5】:

    我通常以一种非常简单的方式进行操作:我使用this 工具直接在正确的文件夹名称中生成我的图像:您只需打开该工具并在其上拖动更大的图像(例如:您要用于 xhdpi 文件夹或 xxhdpi 文件夹):该工具将在原始图像的文件夹中创建包含正确缩放的图像的所有其他文件夹(mdpi、ldpi、hdpi 等)。 一旦你有了这个文件夹,你只需将它们粘贴到 res 文件夹中,完成!

    【讨论】:

      【解决方案6】:

      使用 Mac OS X Finder,您只需将文件夹 drawable-mdpidrawable-hdpidrawable-xdpidrawable-xxdpi 复制/粘贴到 my_package/,然后选择在出现的 Finder 对话框中选择 Merge。这会将新文件添加到my_package/ 中的相应文件夹中。

      但是,请注意,这只有在源文件夹和目标文件夹不包含任何同名文件时才有可能。

      【讨论】:

        【解决方案7】:
        1. 选择“res”目录
        2. 右键单击并选择“比较”
        3. 找到你的drawables来自的目录
        4. 隐藏传出更改
        5. 选择所有传入的更改并单击箭头进行同步。

        【讨论】:

          【解决方案8】:

          在你的 Android Studio 中,右键单击 drawable -> New -> Image Asset -> Asset Type: Action Bar and Tab Icons。 图片文件:image_path, 资源名称:图像名称 -> 下一步 -> 完成

          完成

          这将添加 4 种不同尺寸的图像,使其适合设备尺寸

          【讨论】:

            【解决方案9】:

            如果你从https://material.io/icons/下载你的图标,你可以使用下面的Bash函数一次性导入一堆图标:

            import_icons() {
              project_dir=${1%/}
              shift 1
            
              for zip in "$@"; do
                unzipped_dir=${zip%.*}
                echo $(basename "$unzipped_dir")
                unzip "$zip" -d $(dirname "$zip") >/dev/null
                cp -R "$unzipped_dir"/android/* "$project_dir/app/src/main/res"
              done
            }
            

            使用示例:

            $ import_icons ~/Projects/MyProject ic_1.zip ic_2.zip ic_3.zip
            

            cp -R 复制各种源mdpihdpi 等目录,并为您将它们与现有目录合并。如果你的图标包的目录结构不同,只需将第一个参数修改为cp即可。

            【讨论】:

              【解决方案10】:

              似乎这样做的方法是将资源拖放到 AS。例如。我们有一堆图像,我们抓取所有的 xxhdpi 图像并将它们放到 AS 中,然后它会询问您这些图像的分辨率是多少,所以我们从 pouup xxhdpi 中选择.. 然后,xhdpi 中的所有图像再次从中选择 xhdpi弹出,这就是将资产导入AS的方式以此类推。

              【讨论】:

                【解决方案11】:

                最简单和最快的方法是仅当您在已经格式化的文件夹中有图像时,一次复制粘贴。如下所述。

                • 从Meterial Icons here下载任何图片

                • 下载的文件夹包含所有级别的可绘制文件夹(mdpi、 hdpi 等)

                • 只需复制所有文件夹并将其粘贴到 res 文件夹,这里是文件夹 不只是替换新图像,而是要添加现有图像。

                【讨论】:

                  【解决方案12】:

                  安装Android drawable importer

                  关注 CompleteVideoTutorial 以了解安装 Android drawable importer快速导入 drawable 的技巧

                  【讨论】:

                    【解决方案13】:

                    从 Android 工作室 -> 转到配置 -> 插件。搜索“Batch Drawable 导入器”。 单击安装。 然后重启android studio。

                    【讨论】:

                      【解决方案14】:

                      我发现最简单的方法是复制文件或在启动器图标的情况下设置文件夹。

                      然后将它们粘贴到 AndroidStudio 的 res 文件夹中。

                      [

                      对我来说效果很好。

                      【讨论】:

                        猜你喜欢
                        • 2013-11-06
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-07-21
                        • 1970-01-01
                        • 2010-10-19
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多