android屏幕适配之度量单位、屏幕分类、图标尺寸归类分析

  好久没有做android项目UI的适配了,好多基本概念都已经模糊了,于是萌生了将屏幕分辨率、常用单位、常用图标尺寸等信息规整的想法,一下就是通过查询资料,自己验证的一些随笔,如有失误之处,望大家及时予以指正,我将及时更新改正,有部分内容未添加,有些是不常用,有些是没有相关资料,希望在以后能慢慢补全。

 

一、常见单位:

1、px(pixels):(像素) 屏幕上可见像素点

2、dip/dp(Density independent pixels): 设备无关像素的长度单位。

3、sp(放大像素):scaled pixels,主要用于字体显示 best for text size (随系统字体大小设置而变化)

4、dpi:(dots per inch )一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度

5、density:密度。常见取值 1.5 , 1.0 。和标准dpi的比例(160px/inc)

6、in (英寸):长度单位

7、mm(毫米):长度单位

 

8、pt:point (磅)一个标准的长度单位,1pt = 1/72英寸,常用于印刷业

 

二、常见概念:

1、分辨率:横纵2个方向的像素点的数量,如:480*800

2、屏幕尺寸:屏幕对角线长度,多以英寸为单位

3、屏幕比例:确定屏幕对角线长度后,屏幕形状没有确定,有了屏幕比例 4:3、16:9 这种屏幕比例后,就可以计算屏幕长宽

 

三、计算方法:

dpi = 对角线像素点数(根据分辨率通过勾股定理获取)/屏幕尺寸

density = dpi/160

 

四、屏幕尺寸与dp对照表:

 

资源文件夹

屏幕尺寸

屏幕像素密度(dpidots per inch

密度(density

1dpdip

ldpi

 

120

0.75

0.75px

mdpi

320*480

160

1.0(160px/inc)

1px

hdpi

480*800

240

1.5

1.5px

xhdpi

1280*720

320

2.0

2px

xxhdpi

1920*1080

480

3.0

3px

 

五、activity中获取相关参数方式:

    DisplayMetrics metric = new DisplayMetrics();

    getWindowManager().getDefaultDisplay().getMetrics(metric);

    int width = metric.widthPixels;  // 屏幕宽度(像素)

    int height = metric.heightPixels;  // 屏幕高度(像素)

    float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)

    int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)

 

六、常用图标尺寸设计规范:

 

 

ldpi

mdpi

hdpi

xhdpi

xxhdpi

应用启动图标

 

36 x 36 px

48 x 48 px

72 x 72 px

96 x 96 px

144 x 144 px

底部菜单图标

完整图片

 36 x 36 px

48 x 48 px

72 x 72 px

 

 

图标

24 x 24 px

32 x 32 px

48 x 48 px

 

 

图标外边框

 22 x 22 px

30 x 30 px

44 x 44 px

 

 

弹出对话框顶部图标

 

24 x 24 px 

32 x 32 px

48 x 48 px

 

 

长列表内部列表项图标

 

24 x 24 px 

32 x 32 px 

48 x 48 px

 

 

底部或顶部tab标签图标

完整图片

 24 x 24 px

32 x 32 px

 48 x 48 px

 

 

图标

22 x 22 px

28 x 28 px

42 x 42 px

 

 

底部状态栏图标

 

18 x 18 px 

24 x 24 px

36 x 36 px

48 x 48 px 

 

posted @ 2016-03-03 15:59  聆风牧雨  阅读(1560)  评论(1编辑  收藏  举报