本页包含有关创建和使用基于 View 的布局特有的应用图标的信息。如需详细了解如何创建应用图标,请参阅创建应用图标,其中介绍了我们推荐的界面框架。
创建操作栏或标签页图标
使用 Image Asset Studio 为基于 View 的布局创建操作栏和标签页图标。
操作栏图标是置于操作栏中的图形元素,它们表示各个操作项。如需了解详情,请参阅添加和处理操作、应用栏 - Material Design{:.external} 和操作栏设计。
标签页图标是用于在多标签页界面中表示各个标签页的图形元素。每个标签页图标都有两种状态:未选中和选中。如需了解详情,请参阅使用标签页创建滑动视图和标签页 - Material Design。
Image Asset Studio 会将图标放置在 res/drawable-<density>/ 目录中的适当位置。
建议您对操作栏和标签页图标使用 Material Design 样式,即使您的应用支持较低的 Android 版本。使用 appcompat 和其他支持库可以向较低版本的平台提供您的 Material Design 界面。
除了使用 Image Asset Studio,您还可以使用 Vector Asset Studio 创建操作栏和标签页图标。矢量可绘制对象适合用来创建简单图标,并且可以减小应用的大小。
打开 Image Asset Studio 后,您可以按照以下步骤添加操作栏或标签页图标:
- 在 Icon Type 字段中,选择 Action Bar and Tab Icons。
在 Asset Type 中选择一种资源类型,然后在下面的字段中指定资源:
在 Clip Art 字段中,点击相应按钮。
在 Select Icon 对话框中,选择一个素材图标,然后点击 OK。
在 Path 字段中,指定图片的路径和文件名。 点击 … 以使用对话框。
在 Text 字段中,输入文本字符串并选择字体。
图标会显示在右侧的 Source Asset 区域以及向导底部的预览区域中。
(可选)更改名称和显示选项:
名称 - 如果您不想使用默认名称,请输入新名称。 如果项目中已存在该资源名称(由向导底部的错误来指示),它将被覆盖。名称只能包含小写字符、下划线和数字。
Trim - 如需调整源资源中图标图形与边框之间的边距,请选择 Yes。此操作将移除透明空间,同时让宽高比保持不变。如需让源资源保持不变,请选择 No。
Padding - 如果要调整全部四面的源资源内边距,请移动滑块。选择一个介于 -10% 和 50% 之间的值。如果也选择了 Trim,则先进行剪裁。
Theme - 选择 HOLO_LIGHT 或 HOLO_DARK。或者,如需在 Select Color 对话框中指定颜色,请选择 CUSTOM,然后点击 Custom color 字段。
Image Asset Studio 会在透明的正方形内创建图标,所以边缘上有一些内边距。内边距为标准的阴影图标效果提供了充足的空间。
点击下一步。
(可选)更改资源目录:
- Res Directory - 选择想在其中添加图片素材资源的资源源代码集:src/main/res、src/debug/res、src/release/res 或用户定义的源代码集。主源代码集适用于所有 build 变体,包括调试和发布 build。调试和发布源代码集将替换主源代码集,并应用于 build 的一个版本。调试源代码集仅用于调试。如需定义新源代码集,请依次选择 File > Project Structure > app > Build Types。例如,您可以定义一个 Beta 版源代码集,并创建一个图标版本,使其右下角包含文本“BETA”。如需了解详情,请参阅配置 build 变体。
Output Directories 区域会显示图片以及它们将出现在 Project 窗口的“Project Files”视图中的哪些文件夹内。
点击 Finish。
Image Asset Studio 会针对不同的密度将图片添加到 drawable 文件夹。
在代码中引用图片资源
您通常可以在代码中以通用方式引用图片资源,当您的应用运行时,系统会根据设备自动显示对应的图片:
大多数情况下,您可以在 XML 代码中以
@drawable的形式引用图片资源,或在 Java 代码中以Drawable的形式引用图片资源。例如,以下布局 XML 代码会在
ImageView中显示可绘制对象:<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" />以下 Java 代码会以
Drawable的形式检索图片:Kotlin
val drawable = resources.getDrawable(R.drawable.myimage, theme)
Java
Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.myimage, getTheme());
getResources()方法位于Context类中,它适用于界面对象,如 activity、fragment、布局和视图等。如果您的应用使用支持库,您可以通过
app:srcCompat语句在 XML 代码中引用图片资源。例如:<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" app:srcCompat="@drawable/myimage" />
您只能从主线程访问图片资源。
项目的 res/ 目录中有了某个图片资源后,您可以使用其资源 ID 从 Java 代码或 XML 布局中对其进行引用。以下 Java 代码设置了 ImageView 以使用 drawable/myimage.png 资源:
Kotlin
findViewById<ImageView>(R.id.myimageview).apply { setImageResource(R.drawable.myimage) }
Java
ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage);
如需了解详情,请参阅访问应用资源。