图标设计指南

在整个界面中打造统一的外观可提升您的产品价值。简化图形样式也会让用户觉得界面看上去更专业。

本文档提供的信息可帮助您为应用界面的各个部分创建与 Android 2.x 框架所使用的常规样式相匹配的图标。遵循这些准则有助于您为用户提供美观统一的体验。

以下文档讨论了 Android 应用中常用图标类型的详细准则:

自适应启动器图标
自适应启动器图标是一个图形;它在设备主屏幕上以及运行 Android 8.0(API 级别 26)或更高版本的设备上的启动器窗口中表示应用。
旧版启动器图标
旧版启动器图标是一个图形;它在设备主屏幕上以及运行 Android 7.1(API 级别 25)或更早版本的设备上的启动器窗口中表示应用。
菜单图标
菜单图标是位于选项菜单中的图形元素,用户按“菜单”按钮时会看到这些图标。
操作栏图标
操作栏图标是表示操作栏中操作项的图形元素。
状态栏图标
状态栏图标用于在状态栏中表示来自应用的通知。
标签图标
标签图标是用于在多标签界面中表示各个标签的图形元素。
对话框图标
对话框图标显示在提示用户进行交互的弹出对话框中。
列表视图图标
列表视图图标与 ListView 配合使用,以图形方式表示列表项。例如“设置”应用。

要更快速地开始创建图标,您可以下载 Android 图标模板包。

使用 Android 图标模板包

Android 图标模板包是模板设计、纹理和图层样式的集合,可让您更轻松地创建符合本文档所述准则的图标。建议您在开始设计图标之前下载模板包归档文件。

图标模板以 Adobe Photoshop 文件格式 (.psd) 提供,它保留了我们在为 Android 平台创建标准图标时使用的图层和设计构思。您可以将模板文件加载到任何兼容的图片编辑程序中,但能否直接使用图层和设计构思可能因您使用的程序而异。

您可以使用以下链接获取最新的图标模板包归档文件:

下载适用于 Android 4.0 的图标模板包 »

对于旧版图标模板包,请参见本页右上角框中的“下载内容”部分。

提供密度特定的图标集

Android 是为了在具有不同屏幕尺寸和分辨率的各种设备上运行而设计的。为应用设计图标时,请务必记住,您的应用可能会安装在任何设备上。正如支持多种屏幕文档中所述,Android 平台可让您直接提供在任何设备(无论屏幕尺寸或分辨率为何)上都能正确显示的图标。

一般来说,建议的做法是,为每种通用屏幕密度创建一组单独的图标。之后,将它们存储在应用中密度特定的资源目录中。当应用运行时,Android 平台将检查设备屏幕的特性,并从密度特定的适当资源加载图标。要详细了解如何在应用中存储密度特定的资源,请参见屏幕尺寸和密度的资源目录限定符

有关如何为多个密度创建和管理图标集的提示,请参见设计人员提示

设计人员提示

以下是您为应用开发图标或其他可绘制资源时可能会觉得非常实用的一些提示。这些提示假设您使用的是 Adobe Photoshop 或类似的光栅和矢量图片编辑程序。

对图标资源使用通用命名惯例

尝试为文件命名,这样在按字母排序时一起,相关资源便会在某个目录中归为一组。特别需要指出的是,这有助于为每种图标类型使用公共前缀。例如:

资源类型 前缀 示例
图标 ic_ ic_star.png
启动器图标 ic_launcher ic_launcher_calendar.png
菜单图标和操作栏图标 ic_menu ic_menu_archive.png
状态栏图标 ic_stat_notify ic_stat_notify_msg.png
标签图标 ic_tab ic_tab_recent.png
对话框图标 ic_dialog ic_dialog_info.png

请注意,我们并不要求您使用任何类型的共享前缀,只不过这样做会给您带来便利。

设置工作空间,以便为多个密度组织文件

支持多个屏幕密度意味着您必须创建同一图标的多个版本。为了确保多个文件副本的安全且更易于查找,我们建议在工作空间中创建一个按分辨率组织资源文件的目录结构。例如:

art/...
        ldpi/...
            _pre_production/...
                working_file.psd
            finished_asset.png
        mdpi/...
            _pre_production/...
                working_file.psd
            finished_asset.png
        hdpi/...
            _pre_production/...
                working_file.psd
            finished_asset.png
        xhdpi/...
            _pre_production/...
                working_file.psd
            finished_asset.png

此结构类似于密度特定的结构,在这种结构中,您最终可以将完成的资源存储在应用的资源中。由于工作空间中的结构与应用的结构类似,因此您可以快速确定应将哪些资源复制到每个应用资源目录。按密度分隔资源还有助于您检测不同密度的文件名的任何差异,这一点尤为重要,因为不同密度的相应资源必须共享相同的文件名。

为了便于比较,下面展示了典型应用的资源目录结构:

res/...
        drawable-ldpi/...
            finished_asset.png
        drawable-mdpi/...
            finished_asset.png
        drawable-hdpi/...
            finished_asset.png
        drawable-xhdpi/...
            finished_asset.png

尽量使用矢量形状

许多图片编辑程序(如 Adobe Photoshop)允许您使用矢量形状与光栅图层和效果的组合。如果可能的话,请使用矢量形状,以便在需要时可以按比例放大资源,而不会损失细节和边缘清晰度。

您还可以使用矢量以较小的分辨率轻松将边和角对齐到像素边界。

从大型画板开始

由于您将需要为不同的屏幕密度创建资源,因此最好在大型画板(尺寸为目标图标尺寸的数倍)上开始进行图标设计。例如,启动器图标的宽度为 96、72、48 或 36 像素,具体取决于屏幕密度。如果您最初是在 864x864 的画板上绘制启动器图标,则在将画板缩小到目标尺寸以创建最终资源时,调整图标将会变得更轻松,且调整后的图标会更清晰。

缩放时,根据需要重新绘制位图图层

如果您从位图图层(而不是矢量图层)缩放图片,则需要手动重新绘制这些图层,以使其在较高密度下显得清晰。例如,如果将一个 60x60 的圆绘制为位图以用于 mdpi,则需要将其重新绘制为 90x90 的圆以用于 hdpi

保存图片资源时,移除不必要的元数据

尽管 Android SDK 工具会在将应用资源打包到应用二进制文件时自动压缩 PNG,但建议您最好还是从 PNG 资源中移除不必要的标头和元数据。OptiPNGPngcrush 等工具可以确保移除此元数据,并优化图片资源文件大小。

确保不同密度的相应资源使用相同的文件名

每个密度的相应图标资源文件都必须使用相同的文件名,但应存储在密度特定的资源目录中。这样,系统可以根据设备的屏幕特性查询并加载适当的资源。因此,请确保每个目录中的资源集保持一致,并且文件不使用密度特定的后缀。

要详细了解密度特定的资源以及系统如何使用它们来满足不同设备的需求,请参见支持多个屏幕