好久没有做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

0.75

0.75px

mdpi

320*480

1.0(160px/inc)

1px

hdpi

480*800

1.5

1.5px

xhdpi

1280*720

2.0

2px

xxhdpi

1920*1080

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

android屏幕适配之度量单位、屏幕分类、图标尺寸归类分析的更多相关文章

  1. Android屏幕适配和文字屏幕适配

    http://blog.sina.com.cn/s/blog_9996c67e0101euwd.html 最近在一个项目中要实现屏幕适配平板和手机等不同的型号,而蛋疼的美工给了一套图,而且这些图纸有在 ...

  2. Android必知必会-App 常用图标尺寸规范汇总

    若移动端访问不佳,请使用 –> Github版 内容持续更新中,更新日期:2016-08-11 1. 程序启动图标(icon launcher) 放在mipmap-*dpi下,文件名为ic_la ...

  3. Android屏幕适配与切图_汇总

    首先和最后,还是先看好官方文档:http://developer.android.com/guide/practices/screens_support.html 对应的翻译blog有牛人做了:And ...

  4. 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题

    . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19698511 . 最近遇到了一系列的屏幕适配问题, 以及 ...

  5. Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题

    . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19698511 . 最近遇到了一系列的屏幕适配问题, 以及 ...

  6. iOS学习笔记24-不断进化的屏幕适配

    一.屏幕适配 iOS的屏幕适配可以分为3大块,代表着不同时期的屏幕适配主流: AutoResizing:在iOS6之前,完全能够胜任,因为当时苹果只有3.5寸屏,加上比较少的支持横屏,它有非常大的局限 ...

  7. 最清晰的Android多屏幕适配方案

    问题的引入 当您的Android应用即将发布的时候,如果你想让更多的用户去使用你的应用,摆在工程师面前的一个重要问题就是如何让你的应用能在各种各样的终端上运行,这里的各种各样首当其冲的就是不同的屏幕分 ...

  8. 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)

    来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...

  9. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

随机推荐

  1. c# in deep 之Lambda表达式

    从很多方面,Lambda表达式都可以看作是C# 2的匿名方法的一种演变.匿名方法能做的几乎一切事情都可以用Lambda表达式来完成,而且其更简洁.易读.下面是一个简单例子. class Film    ...

  2. C#算两个时间段相差的时间

    在数据中经常算两个时间差或者在某个时间段的内容 在数据库中设计表字段类型的时候设计为varchar类型,然后进行可以再Sql语句中书写>=或者<=这样的进行比较就可以查询出某个时间段的内容 ...

  3. 用Haproxy给MySQL做负载均衡

    1.安装 # wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz # tar zcvf haproxy-1.4.24.t ...

  4. 在MVC中添加异常增加日志

    MVC的结构非常棒,基本你能想到注入的地方都可以找到地方,譬如IActionFilter,IResultFilter,IAuthorizationFilter以及IExceptionFilter 以下 ...

  5. 实现Launcher编辑模式(1) 壁纸更换

    Android Launcher分析和修改13——实现Launcher编辑模式(1) 壁纸更换 Posted on 2013-09-11 23:25 泡泡糖 阅读(212) 评论(3) 编辑 收藏 已 ...

  6. C#利用Emit反射实现AOP,以及平台化框架封装思路

    C#利用Emit反射实现AOP,以及平台化框架封装思路 这是前两天扒的一段动态代理AOP代码,用的Emit反射生成子类来实现代理模式,在这里做个小笔记,然后讨论一下AOP框架的实现思路. 首先是主函数 ...

  7. JavaScript –type

    JavaScript –类型之我晕 每次写博我觉得取上恬当的题目比整篇行文都难,词量有限的情况下突然想到JavaScript拾遗应该会是一个非常文艺而夺目的博文题目,但我并没有急着使用,经验告诉我应该 ...

  8. 在Visual Studio 2012中使用VMSDK开发领域特定语言1

    在Visual Studio 2012中使用VMSDK开发领域特定语言(一)   前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modelin ...

  9. tar命令,重定向,正则表达式,添加删除用户,tr命令,sort排序

    rpm包仅用于 redhat suse redflag 若是源代码包的话,那就都适用linux下面的备份,差不多就是用tar打包 tar命令用途:制作归档文件,释放归档文件格式:tar [选项]... ...

  10. sftp 服务器外网访问设置

    这个是需要在本机上设定用户名的.根据不同的用户权限.然后让不同的人来到本机上取得数据. 参考一下有用的文章:http://www.ericstockwell.com/?p=54       (强烈建议 ...