android中px,dp,sp的区别与使用方法。

最近又在重头看android视频,不同的是又换了一个人的视频重新学习一次,不过好在还是很有收获,把以前概念不是很清楚的东西终于完整的弄懂了,感觉还是很好。

就比如说这个px,dp,sp,以前只知道这分别代表什么,什么时候该用什么,却不知道这些是为什么要这么用,各自是怎样计算的。

首先px的指的是像素,而什么是像素?像素是最小的成像单元。通常我们说的手机480×320,意思就是整个手机屏幕是由480×320个像素组成,每一行320个像素,每一列480个像素。

这样,在android的UI中设置控件大小的时候,就很清楚了,假如这个控件要占有屏幕一半的宽度,则把它的宽度设置为160px即可。

但是问题又出现了android手机中,不同的手机的屏幕分辨率不同,在一个960×640的手机中,160px将不再是屏幕宽度的一半,所以,又出现了dp的概念。

什么是dp?在这之前应该先介绍什么是dpi。dpi是指单位英寸上的的像素数量。一般说手机屏幕多大,指的是手机屏幕对角线的长度,而dpi的计算方式,就是用对角线上的像素数量,除以对角线的长度

这就要用到勾股定理了,不知道大家还记得吗,哈哈。

dpi=(行的像素数量平方+列的像素数量平方)开根号/屏幕对角线长度

数学符号不好打~~(>_<)~~ 。

那什么是dp?dp是人为定义出的与像素无关的尺寸符号

px=dp×(dpi/160),从这个公式可以看出,px被约掉了,所以dp只与屏幕的尺寸有关系。

所以dp会自动匹配屏幕尺寸,妈妈再也不用担心出现问题,所以在设置控件大小的时候一般都推荐使用dp!

至于spsp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。

sp 与 px 的换算公式:px=sp×dpi/160

所以sp也与像素无关,也会自动匹配屏幕尺寸,而且更重要的一点是,它能够在改变安卓系统字体设置的时候,字体大小也随之改变。

所以,设置安卓app字体大小的时候,一般时候sp作为单位

更多相关文章

  1. Android获取系统屏幕亮/灭屏状态
  2. Android 获取屏幕截图 和保存到本地的sd卡路径下
  3. MetaHandler.js:移动端适配各种屏幕
  4. android截取系统当前屏幕
  5. Android 判断屏幕开关状态方式总结
  6. Android获取屏幕状态的方式
  7. android 设置全屏显示 和 自适应屏幕
  8. 短视频带货源码,解决Dialog 不铺满屏幕问题

随机推荐

  1. 【前端】js中a||b,a&&b 这种表示啥意思?
  2. 【前端】html5 video标签 自适应
  3. 【前端】手机号码输入框添加 空格
  4. 【前端】多页面有重复的html代码,怎么解决
  5. 【前端】在electron使用ckplayer播放rtmp
  6. 【前端】ios下获得焦点之后,页面布局上移
  7. 【前端】如何用JS判断网页在APP环境中打
  8. 【前端】关于vue的data,和return data的区
  9. 【前端】微信浏览器触摸事件流程
  10. 【前端】Promise的用法