一、概述

1.1 ICON

在 Android 的 ui 设计与开发过程中,图标(ICON)的地位显得尤为重要。ICON 大致分为 7 类:

1.2 支持多种屏幕

参见:https://developer.android.com/guide/practices/screens_support.html

由于 Android 系统运行在不同屏幕尺寸和密度的设备上,Android 为了适应这种情况,为用户提供良好的界面显示,从底层向上提供一致的开发环境。

屏幕支持分类:

  • 四种通用尺寸:小、正常、 大 和超大

  • 六种通用的密度:

    • ldpi(低)~120dpi
    • mdpi(中)~160dpi
    • hdpi(高)~240dpi
    • xhdpi(超高)~320dpi
    • xxhdpi(超超高)~480dpi
    • xxxhdpi(超超超高)~640dpi

故而,支持多种屏幕有如下几种方式:

  • 在清单中显式声明您的应用 支持哪些屏幕尺寸
  • 为不同屏幕尺寸提供不同的布局
    layout-xxx:small、normal、large 和 xlarge
  • 为不同屏幕密度提供不同的位图可绘制对象
    drawable-xxx: ldpi(低)、mdpi(中)、 hdpi(高)、xhdpi(超高)、xxhdpi (超超高)和 xxxhdpi(超超超高)

1.3 drawable 与 mipmap 的区别

https://segmentfault.com/q/1010000002603418

二、ICONS 适配

2.1 配置限定符

用于为不同屏幕配置提供特殊资源的配置限定符

2.2 图片尺寸与密度对应关系

xlsx表格下载地址

备注:

参考了多个项目发现,大部分项目(即时是 Google 提供的官方项目)均未按上述标准进行开发。

  • mdpi:32*32(32bit Color)
  • hdpi:48*48(32bit Color)
  • xhdpi:64*64(32bit Color)
  • xxhdpi:92*92(32bit Color)

例如:

官方文章中下载的“操作栏图标包”及“示例应用”显示:

https://developer.android.com/training/implementing-navigation/nav-drawer.html

Launcher Icons:
m –> xxh 符合规范

  • l:36*36
  • m:48*48
  • h:72*72
  • xh:96*96
  • xxhh:144*144

ActionBar Icons:
与规范不符

  • m:32*32
  • h:48*48
  • xh:64*64
  • xxhh:96*96

Menu Icons:
与规范不符

  • m:32*32
  • h:48*48
  • xh:64*64

2.3 图片命名规则