在Android Studio中导入drawable的快速方法?

在某个Android项目中,您需要在res/drawable目录中导入一些绘图工具(无论是工具栏图标,图像还是UIfunction)。 大多数情况下,您有图像缩放为最常见的限定符( drawable-hdpidrawable-mdpidrawable-xdpidrawable-xxdpi ,…)。

所以我们需要为每个drawable创build三个,四个,甚至五个文件复制/粘贴:

 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实例右file.png相应的包文件夹中? 在IDE中实现了一些function? 一些简单的解决方法?

我的工作stream程至今一直是:

  • 从OS文件pipe理器复制/粘贴,从外部目录复制到软件包,然后刷新Android Studio中的资源文件。 这意味着打开每一个合格的子目录,所以四个步骤;
  • 从OS文件pipe理器移动到external_dir ,searchfile.png ,在一个列表中获取四个实例,拖放到Android Studio中,然后为每个图片右键单击导航栏上的CopyPastePaste到相应的软件包目录。 不是更好!

有什么build议?

编辑 – 我当然不是真的要求“build议” – 我想知道是否有办法减less移动到一个(或这样)的数量。

检查android-drawable-importer-intellij-plugin

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

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

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

只要按照向导。

最好的问候,佩德罗。

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

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

我发现我们只需要导入最高分辨率的资源; AS会为你扩展它们。 我问我的devise师只生成xxhdpi文件,然后。

你进入Project导航器中的/res文件夹,右键单击并selectNew -> Image Asset

Asset Studio将popup

在那里你可以,

  • select您的资产types

[启动图标,操作栏图标,通知图标]

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

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

作为一般说明。 对于除启动器图标以外的内部图标,我select了types“启动图标”,并且它们完美地工作。

希望这个帮助。

最好的,佩德罗。

正如Rob Meeuwisse在上面的评论中提到的那样,你可以在一个复制和粘贴操作中完成。 您可以不是一个一个地复制和粘贴每个文件,而是同时在OS文件pipe理器中select全部四个drawable-XXXX 文件夹 (不是图像本身!)(通过在Windows / Linux或Command Ctrl键在OS X中点击),复制所有这些文件夹,然后将它们粘贴到Android Studio的res文件夹中。

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

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

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

但是,请注意,只有源文件夹和目标文件夹不包含任何相同名称的文件时才可以这样做。

  1. select“res”目录
  2. 右键单击并select“比较”
  3. find您的绘图来自的目录
  4. 隐藏传出的更改
  5. select所有传入的更改,然后单击箭头进行同步。

在您的Android Studio中,右键单击可绘制 – >新build – >图像资产 – >资产types:操作栏和选项卡图标。 图像文件:image_path,资源名称:图像名称 – >下一步 – >完成

完成

这将添加4个不同大小的图像,以便根据设备的大小进行调整

如果你从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

这似乎是做到这一点的方式是将资源拖放到AS。 例如。 我们有一堆图像,我们抓住所有的xxhdpi图像放在他们的AS然后它会问你是哪些分辨率的图像,所以我们select了pouup xxhdpi ..然后,所有的图像在xhdpi再次下降selectxhdpi从popup,这就是将资源导入到AS等等的方式。

最简单和最快的方法就是只有在已经格式化的文件夹中有图像的情况下,才能一次性复制粘贴。

  • 从这里下载材料图标的任何图像

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

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