好久没有做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. Linq无聊练习系列1--where练习

    linq主要有3种,linq to sql,linq to XML,Linq to Object linq to sql. 这里没有通过相应的类,生成相应的数据库中的表.没有用流行的编码优先. 只是为 ...

  2. Win 内存映射和堆栈

    内存映射和堆栈 内存映射文件 内存映射文件可以用于3个不同的目的: 系统使用内存映射文件,以便加载和执行.exe和DLL文件.这可以大大节省页文件空间和应用程序启动运行所需的时间. 可以使用内存映射文 ...

  3. Asp.Net Web API 2(CRUD操作)第二课

    Asp.Net Web API 2(CRUD操作)第二课 Asp.Net Web API 导航   Asp.Net Web API第一课:入门http://www.cnblogs.com/aehyok ...

  4. Mysql--选择适合的引擎,提高操作速度

    在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中   一.数据引擎简介 在MySQL 5.1中,MySQL AB引入了新的插件 ...

  5. 大IT公司笔试

    都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但 ...

  6. 如何避免误用分布式事务(System.Transactions.TransactionScope)

    以下内容来源与:http://www.cyqdata.com/cyq1162/article-detail-54453 1:本地事务DbTransaction和分布式事务TransactionScop ...

  7. SqlBulkCopy实现大容量数据快速插入数据库中

    一般情况下,我们手写sqlhelper类,在此类中定义一个数据插入到数据库的一个方法.将数据库连接密封在using()的语句中.using显示了Idispose接口.可以及时释放数据库连接资源.代码如 ...

  8. 解决js中传值,Action获取是乱码问题

    1.先在js中进行编码 var str = $("mytext").val(); //转码,两次 str = encodeURI(str); str = encodeURI(str ...

  9. javascript遍历select下拉框判断其中值是否与指定值相等

    用jquery多了,就忘了原生的js是如何写的了,还需要多加巩固. 需求:jsp回显一select下拉框.选中指定值. 用户点击修改 该select进行已有值回显.有两种解决方法 一.js中获取用户的 ...

  10. 《Troubleshooting SQL Server》读书笔记-CPU使用率过高(下)

    <Troubleshooting SQL Server>读书笔记-CPU使用率过高(下) 第三章 High CPU Utilization. CPU使用率过高的常见原因 查询优化器会尽量从 ...