Android中dp、sp、px、pt之间的换算关系

换算公式

1 dp = (dpi/160) px;1 in = 72 pt = dpi dp;1 pt = dpi/72 dp;

当dpi为160(每英寸160像素点)
- 1dp = 1px = 1sp
- 1in = 72pt = 160 dp
- 1pt = 2.22 dp;

名词解释

  • px:像素,也就是屏幕上的点;
  • in:英寸,长度单位;
  • pt:磅,长度单位,1pt=1/72in;
  • dp/dip:一种基于屏幕密度的抽象单位,通常用于图形的长度单位;
  • sp:与dp类似,通常用于字体的长度单位。
  • dpi:”dot per inch”,每英寸长度内的像素点;

为什么是你———160 ?

  1. Google的官方文档中有给出了解释,因为第一款Android设备(HTC的T-Mobile G1)是属于160dpi的。
    这个解释是不是有些牵强,哈哈(~ ̄▽ ̄)~ ,看下面嘛
  2. Android Design [1] 里把主流设备的 dpi 归成了四个档次,120 dpi、160 dpi、240 dpi、320 dpi

      实际开发当中,我们经常需要对这几个尺寸进行相互转换(比如先在某个分辨率下完成设计,然后缩放到其他尺寸微调后输出),一般按照 dpi 之间的比例即 2:1.5:1:0.75   来给界面中的元素来进行尺寸定义。

      也就是说如果以 160 dpi 作为基准的话,只要尺寸的 DP 是 4 的公倍数,XHDPI 下乘以 2,HDPI 下乘以 1.5,LDPI 下乘以 0.75 即可满足所有尺寸下都是整数 pixel 。

      但假设以 240 dpi 作为标准,那需要 DP 是 3 的公倍数,XHDPI 下乘以 1.333,MDPI 下乘以 0.666 ,LDPI 下除以 2

      而以 LDPI 和 XHDPI 为基准就更复杂了,所以选择 160 dpi

如有错误请指正;
转载请注明出处。

更多相关文章

  1. 【android studio】 the logging tag can be at most 23 charact
  2. Android中长度单位和边距
  3. 【android】图片放错文件夹引起显示大小不同的原因与屏幕适配原
  4. Android中dp,px,sp概念梳理以及如何做到屏幕适配
  5. ‍Android(安卓)尺寸和分辨率
  6. Android布局文件中常用的长度单位解析
  7. Android(安卓)icon 不同屏幕下尺寸
  8. Android中获得屏幕的尺寸
  9. Android(安卓)判断当前设备是手机还是平板

随机推荐

  1. 一文搞懂MySQL预编译
  2. MySQL 处理重复数据的方法(防止、删除)
  3. MySQL创建用户和权限管理的方法
  4. MySQL 索引知识汇总
  5. CentOS7卸载MySQL5.7的方法步骤
  6. MySQL 4种导入数据的方法
  7. MySQL对数据库操作(创建、选择、删除)
  8. 三种常用的MySQL 数据类型
  9. MySQL8.0窗口函数入门实践及总结
  10. MySQL按指定字符合并以及拆分实例教程