使用资源管理器管理应用的 UI 资源

资源管理器是一个工具窗口,用于导入、创建、管理和使用应用中的资源。要打开工具窗口,请从菜单中选择**查看 > 工具窗口 > 资源管理器**,或选择左侧边栏中的**资源管理器**。

图 1. 资源管理器工具窗口。

  1. 单击添加 将新资源添加到您的项目中。您可以添加图片资产、矢量资产、字体或资源文件和值,也可以导入可绘制对象到您的项目中。
  2. 选择一个模块以查看特定于该模块的资源。
  3. 使用搜索栏在项目中的所有模块中搜索资源。
  4. 根据类型在资源管理器中显示您的资源。使用这些选项卡在资源类型之间切换。单击溢出图标 溢出图标 以显示其他资源类型。
  5. 使用过滤器按钮从本地依赖模块、外部库和 Android 框架中过滤显示的资源。您也可以使用过滤器来显示主题属性。
  6. 在主内容区域预览您的资源。右键单击资源以查看上下文菜单,您可以在其中重命名资源并在您的应用程序中搜索资源的使用位置。
  7. 单击这些按钮以将您的资源显示为图块或列表。
  8. 单击这些按钮以更改资源的预览大小。

除了这些功能外,资源管理器还提供了一种将可绘制对象批量导入到项目中的方法。要批量导入,您可以:

  • 将您的图像文件(包括 SVG 文件)直接拖放到资源管理器。
  • 使用**导入可绘制对象**向导。

有关更多信息,请参阅将可绘制对象导入项目部分。

要查看更详细的信息,请双击资源管理器中的资源。如果您有多个版本的资源,此详细视图将显示每个版本以及任何关联的限定符,如图 2 所示。从这里,您可以双击特定版本以在编辑器窗口中打开它。

图 2.资源管理器显示不同屏幕密度的图像资源的版本。

将可绘制对象导入项目

您可以使用资源管理器将图像资源导入到项目中。有关支持的图像类型列表,请参阅图像支持

要将图像资源导入到项目中,请执行以下操作:

  1. 将您的图像直接拖放到 Android Studio 中的**资源管理器**窗口。

    • 或者,您可以:
      1. 单击加号图标 (**+**)。
      2. 选择**导入可绘制对象**,如图 3 所示。
      3. 选择您要导入的文件和文件夹。

    图 3.从菜单中选择**导入可绘制对象**。

  2. 将显示**导入可绘制对象**对话框,如图 4 所示。该对话框显示您要导入的资源列表。您可以通过单击资源预览上方的文本框来重命名资源。

    如果您提供了同一资源的多个版本,请添加设备配置限定符(如下一节所述),以描述每个资源支持的特定配置。

    例如,如果您为不同屏幕密度提供了同一资源的多个版本,则可以为每个版本添加**密度**限定符。请注意,如果两个或多个资源具有相同的名称和限定符,则只导入一个版本。

    有关资源限定符的更多信息,请参阅提供备用资源

    图 4.**导入可绘制对象**对话框。

    命名资源并添加所有必要的限定符后,单击**下一步**。

  3. 下一屏将显示您要导入的资源的摘要。准备导入时,单击**导入**。

在**资源管理器**窗口中,您的资源现在已准备好在项目中使用,如图 5 所示。

图 5.资源管理器现在显示您的导入图像。

自动解析可绘制对象密度

当您导入文件或文件夹,并且其路径包含密度限定符时,资源管理器会自动将密度限定符作为导入的一部分应用。资源管理器可以解析 Android 的密度限定符和 iOS 的缩放因子。

此表列出了 Android 和 iOS 如何表示不同的支持密度

密度 Android 密度限定符 iOS 缩放因子
低密度 (~120 dpi) ldpi 不支持
中等密度 (~160 dpi) mdpi 原始比例
高密度 (~240 dpi) hdpi 不支持
超高密度 (~320 dpi) xhdpi @2x
超超高密度 (~480 dpi) xxhdpi @3x
超超超高密度 (~640 dpi) xxxhdpi @4x

以下是一些输入路径如何转换为导入后资源路径的示例

Android 密度限定符:hdpi
输入路径: /UserFolder/icon1/hdpi/icon.png
资源路径: <projectFolder>/<moduleFolder> /src/main/res/drawable-hdpi/icon.png
Android 密度限定符:xxhdpi
输入路径: /UserFolder/icon1/abc-xxhdpi/icon.png
资源路径: <projectFolder>/<moduleFolder> /src/main/res/drawable-xxhdpi/icon.png
iOS 缩放因子:@2x
输入路径: /UserFolder/icon1/icon@2x.png
资源路径: <projectFolder>/<moduleFolder> /src/main/res/drawable-xhdpi/icon.png
iOS 缩放因子:@2x
输入路径: /UserFolder/icon1/icon@2x_alternate.png
资源路径: <projectFolder>/<moduleFolder> /src/main/res/drawable-xhdpi/icon_alternate.png

有关支持不同像素密度的设备的更多信息,请参阅支持不同的像素密度

将可绘制对象拖放到布局中

您可以将可绘制对象从资源管理器直接拖放到布局中。将资源拖放到布局时,资源管理器会为该可绘制对象创建一个相应的 ImageView,如动画 1 所示

动画 1. 将可绘制对象拖放到**设计**视图中的布局。

您也可以直接拖放到布局的 XML 上,如动画 2 所示

动画 2. 将可绘制对象拖放到**文本**视图中的布局。

将可绘制对象拖放到**文本**选项卡中的布局时,生成的代码会因您在布局中放置可绘制对象的位置而异

  • 如果您将可绘制对象拖放到空白区域,资源管理器会生成一个相应的 ImageView
  • 如果您将可绘制对象拖放到布局 XML 中的任何属性上,资源管理器会将该属性值替换为对可绘制对象的引用。您也可以将任何其他资源类型拖放到 XML 属性上,以替换属性值。
  • 如果您将可绘制对象拖放到现有的 ImageView 元素上,资源管理器会替换相应的源属性。