使用 Resource Manager 管理应用的界面资源

Resource Manager 是一个新的工具窗口,用于在应用中导入、创建、管理和使用资源。您可以通过以下方法打开该工具窗口:从菜单栏中依次选择 View > Tool Windows > Resource Manager,或在左侧边栏选择 Resource Manager

图 1:Resource Manager

  1. 点击 Add 可向项目添加新的资源。您可以添加图片资源、向量资源、资源,也可以将资源导入项目中。
  2. 通过模块下拉列表,您可以查看某个模块的专属资源。
  3. 使用搜索栏可以搜索为某个资源选择的模块。
  4. Resource Manager 可管理应用的可绘制对象、颜色和布局。使用这些标签可在每种资源类型之间切换。
  5. 使用过滤器按钮可以显示外部库中的资源。
  6. 主要内容区域会显示资源的预览效果。右键点击某项资源可打开上下文菜单,您可以通过该菜单重命名资源、在应用中搜索使用了该资源的位置,以及执行其他操作。
  7. 点击这些按钮能够以图块或列表形式列出资源。
  8. 点击这些按钮可更改资源的预览大小。

除了上面提到的功能之外,Resource Manager 还提供了一种将可绘制对象批量导入项目中的简单方法。您可以将图片文件(包括 SVG 文件)直接拖放到 Resource Manager 中,也可以使用 Import Drawables 向导。如需了解详情,请参阅下面的将资源导入项目中部分。

双击某项资源可在 Resource Manager 中查看更详细的信息。如果某项资源有多个版本,此详细视图将显示每个版本以及所有关联的限定符,如图 2 所示。您还可以在此视图中双击特定版本以在编辑器窗口中打开它。

图 2:显示适用于不同屏幕密度的图片资源版本的 Resource Manager。

将可绘制对象导入项目中

您可以将资源文件或文件夹直接拖放到 Resource Manager 中,导入图片资源。将这些资源放入 Resource Manager 中后,会出现 Import drawables 对话框,您可以在其中查看这些资源的摘要并在导入之前添加任何所需的限定符。

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

  1. 将图片直接拖放到 Android Studio 的 Resource Manager 窗口中。或者,您也可以点击加号图标 (+),选择 Import Drawables,如图 3 所示,然后选择要导入的文件和文件夹。

    图 3:从下拉菜单中选择 Import Drawables

  2. 系统会显示 Import drawables 对话框。如图 4 所示,此对话框显示了您要导入的资源列表。如果您要提供同一资源的多个版本,请添加设备配置限定符以描述该资源支持的特定配置。例如,如果您要为不同屏幕密度提供多个版本的同一资源,则可以为每个版本添加 Density 限定符。请注意,如果两项或多项资源具有相同的名称和限定符,则仅导入一个版本。如需详细了解资源限定符,请参阅提供替代资源

    图 4Import Drawables 对话框。

  3. 准备好导入资源后,点击 Import 按钮。

Resource Manager 窗口中,您的资源现在可供您在项目中使用了,如图 5 所示。

图 5:Resource Manager 现在显示您导入的图片。

自动解析可绘制对象的密度

当您导入文件或文件夹时,如果其路径包含密度限定符,Resource Manager 会自动在导入过程中应用密度限定符。Resource Manager 可以解析 Android 的密度限定符和 iOS 的缩放比例。

下表列出了受支持的不同密度在 Android 和 iOS 系统中的表示方法:

密度 Android 密度限定符 iOS 缩放比例
低密度(约 120dpi) ldpi 不支持
中密度(约 160dpi) mdpi 原始缩放
高密度(约 240dpi) hdpi 不支持
超高密度(约 320dpi) xhdpi @2x
超超高密度(约 480dpi) xxhdpi @3x
超超超高密度(约 640dpi) 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

如需详细了解如何支持不同的设备像素密度,请参阅支持不同的像素密度

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

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

动画 1:将可绘制对象拖放到 Design 视图中的布局上。

您还可以拖放到 Text 标签中的 XML 视图上,如动画 2 所示:

动画 2:将可绘制对象拖放到 Text 视图中的布局上。

将可绘制对象放到 Text 标签中的布局上时,生成的代码会根据放置布局的位置而有所不同:

  • 如果将可绘制对象放到空白区域,Resource Manager 会生成对应的 ImageView
  • 如果将可绘制对象放到任何属性上,Resource Manager 将使用对该可绘制对象的引用替换属性值。
  • 如果将可绘制对象放到现有的 ImageView 元素上,Resource Manager 将替换相应的来源属性。