名词

解释

Px

(Pixel像素)

不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小。

Screen Size

(屏幕尺寸)

一般所说的手机屏幕大小如1.6英寸、1.9英寸、2.2英寸,都是指的对角线的长度,而不是手机面积。我们可以根据勾股定理获取手机的宽和长,当然还有面积。

Resolution

(分辨率)

指手机屏幕垂直和水平方向上的像素个数。比如分辨率是480*320,则指设备垂直方向有480个像素点,水平方向有320个像素点。

Dpi

(dots per inch

像素密度)

指每英寸中的像素数。如160dpi指手机水平或垂直方向上每英寸距离有160个像素点。假定设备分辨率为320*240,屏幕长2英寸宽1.5英寸,dpi=320/2=240/1.5=160

注意:该值对应于DisplayMetrics类中属性densityDpi的值。具体请参考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html

Density

(密度)

指每平方英寸中的像素数。

Density=Resolution/Screen size

注意:在DisplayMetrics类中属性density的值为dpi/160,可用于pxdip的互相转换。具体请参考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266684.html

Dip

(Device-independent pixel,设备独立像素)

同dp,可作长度单位,不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dip和具体像素值的对应公式是dip =设备密度/160* pixel,可以看出在dpi(像素密度)为160dpi的设备上1px=1dip

Sp

(ScaledPixels

放大像素)

主要用于字体显示(best for textsize)。根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。

Android的屏幕密度是以160为基准的,

屏幕密度(densityDpi)为160时, 是将一英寸分为160份, 每一份是1像素. 如果屏幕密度(densityDpi)为240时, 是将一英寸分为240份, 每一份是1像素. 1英寸/160(机器x)  = 1英寸/240(机器y)  =  1px

打个比方, 一个三英寸的显示屏幕的机器, 如果屏幕密度(densityDpi)为160, 即密度比(density)1.0时, 画一条160dip和160px的线条, 两个都是1英寸. 可如果还是三英寸的屏幕, 如果屏幕密度(densityDpi)变为320, 即密度比(density)2.0时,1英寸有320像素了, 此时160px显示就是半英寸. 160dip显示还是1英寸, 因为 1dip = 1px * density .

可是你有没有注意到, 同样宽的屏幕, 比如3英寸, 如果density 是1.0的话, 分辨率就是480dip*x或480px,*x 如果还是3英寸的, density 是1.5的话 , 分辨率就是480*1.5 = 720px*x 或480dip*x. (这里的x代表屏幕的高度). 如果同样是240dip, 在两款机器上显示都是一半的长度, 这样就保证了比例. 这样的话如果是480分辨率和720分辨率的话,可以采用同一个布局文件了.

又但可是, 我见过的机器只有320*240(0.75) , 480*320(1.0) , 800*480(1.5), 854*480(1.5) , 如果是480 和 800 两个版本, 同一条线480dip , 480显示全屏, 800则显示 480 / (800 / 1.5)  屏 . 其中800/1.5是屏幕的总dip . 我们平时说的分辨率都是以像素px为单位的.

由此可见, 就算是用dip, 也不能保证不同分辨率的机器的布局比例完全一样.  但还是有好处的. 因为如果是用px的话, 有些时候一些布局直接跑到了屏幕外边, 调试起来很麻烦.

还有, google代码里边所用的单位都是以px为默认单位的.

apk的资源包中,当屏幕density=240时使用hdpi标签的资源

当屏幕density=160时,使用mdpi标签的资源

当屏幕density=120时,使用ldpi标签的资源。

在每英寸160点的显示器上,1dp = 1px。

转载于:https://www.cnblogs.com/zhepama/archive/2013/06/14/3136146.html

android 布局中的单位及分辨率自解相关推荐

  1. android 布局 站位符,基于android布局中的常用占位符介绍

    大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: android:layout_width="wrap_content" a ...

  2. Android布局中的空格以及占一个汉字宽度的空格的实现

    在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: 窄空格:  一个汉字宽度的空格:   [用两个空格(  )占一个汉字的宽度时,两个空格比一 ...

  3. android布局中使用include及需注意点

    在android布局中,使用include,将另一个xml文件引入,可作为布局的一部分,但在使用include时,需注意以下问题:一.使用include引入如现有标题栏布局block_header.x ...

  4. android 多个占位符,基于android布局中的常用占位符介绍

    大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: android:layout_width="wrap_content" a ...

  5. 详解Android布局中gravity与layout_gravity属性

    在android布局中,我们经常会用到"重心"-gravity这个属性.但是gravity有不同的类型: gravity layout_gravity 相对布局中的layout_c ...

  6. Android布局中margin与padding的区别

    我们知道Android开发不仅仅有代码的动态控制,而且还涉及到布局的静态搭建(xml).几乎在每一个xml文件中,我们总会看到margin和padding这两个属性,今天让我们初步探究一下它们之间的区 ...

  7. android 距离设置多少dp核实,【Android学习】android布局中几个距离单位的区别:px、dp、sp...

    一.px 像素,我们经常说的400*800这种的就是像素,这个比较好理解. 二.dp 要理解dp,首先要先引入dpi这个概念,dpi全称是dots per inch,对角线每英寸的像素点的个数,所以, ...

  8. android布局中使用图片,Android布局和图片使用规范

    先熟悉几个Android屏幕的计量单位 屏幕尺寸: 指的是手机实际的物理尺寸也就是屏幕的对角线的长度,比如常用的4.0英寸,4.7英寸,5.0英寸,5.5英寸. 单位 英寸inch ,屏幕的对角线的长 ...

  9. 在android布局中使用include和merge标签

    在我们开发Android布局时,经常会有很多的布局是相同的,这个时候我们可以通过<include/>和<merge/>标签实现将复杂的布局包含在需要的布局中,减少重复代码的编写 ...

最新文章

  1. java httpclient put_[工具类-HttpClientUtils]HttpClient之GET PUT DELETE POST
  2. 【PAT - 甲级1045】Favorite Color Stripe(30分)(dp,LIS类问题)
  3. MySQL 导入 csv、excel 或者 sql 文件
  4. [神经网络]什么叫神经网络
  5. 前端之JQuery:JQuery属性操作
  6. [雪峰磁针石博客]python 3.7极速入门教程1安装:Linux(Ubuntu 18.04)及Windows上安装Anaconda...
  7. Atitit 发帖机系列(6) USRQBN2201 setup spec安装程序的实现规范与标准化解决方案
  8. JAVA B2B2C多用户商城系统源码 网上商城源码
  9. Tyvj 1728 普通平衡树
  10. 为胎儿诵地藏经的好处(合集)怀孕的一定要看哦!
  11. SpringBoot之九重九阳神功
  12. access里面的表达式运用_表达式的示例
  13. 0716 process finished with exit code 0 解决
  14. Qtcreator远程调试arm开发板程序指南
  15. Ubuntu16.04安装有道词典
  16. Java培训机构靠不靠谱?能不能学会?
  17. 王艾老哥---三穷三富过到老,十年兴败谁知晓!
  18. 【DL with Pytorch】第 3 章 :使用 DNN 的分类问题
  19. 代码REVIEW的一般方法
  20. JAR 文件格式的强大功能(java中jar工具的使用)

热门文章

  1. Java实现数组转字符串及字符串转数组的方法
  2. Ubuntu下修改root密码
  3. swoole 自定义eof 标记 带返回信息(自己修改)和 不带返回信息的原本demo
  4. 用Python快速找到出现次数最多的数据
  5. 关于文件的INode与Java中的文件操作接口
  6. 阿里巴巴内部开发手册
  7. 《人机交互与戏剧表演:用戏剧理论构建良好用户体验》一导读
  8. 10 个实用技巧,让 Finder 带你飞
  9. 该学Java或.NET?
  10. 8.3、Spring Profiles 功能及内部原理