Android编程:px,sp,dp,sp 之间的关系解析
小标 2018-05-23 来源 : 阅读 1512 评论 0

摘要:·本文主要介绍了Android编程px,sp,dp,sp 之间的关系解析,通过具体的概念向大家介绍了它们,希望对大家学习Android编程有所帮助。

本文主要介绍了Android编程px,sp,dp,sp 之间的关系解析,通过具体的概念向大家介绍了它们,希望对大家学习Android编程有所帮助。

先来说说基本的概念吧:

手机的尺寸: 屏幕对角线的长度,单位为英寸(2.54cm)
手机的分辨率:屏幕能显示的像素的数量, 一般用在长方向上数量*宽方向上数量来表达,即经常说的1920*1080
手机的像素密度ppi(pixels per inch):即每英寸屏幕能显示的像素数,像素密度越大,显示画面细节就越丰富。计算:像素密度={1+√[(长度像素数-1)^2+(宽度像素数-1)^2]}/屏幕尺寸
dpi(Dots Per Inch)的缩写:用来表示打印机打印分辨率, 但有时也会用dpi来代指ppi
手机的密度 Density:以160dpi为基准,手机的像素密度与基准的比值。 即像素密度为160时Density为1
手机的密度: Density, 以160dpi为基准,手机的像素密度与基准的比值。 即像素密度为160时Density为1

px: pixel 像素,屏幕中可显示的最小单元。
pt: point 磅数 1磅等于 1/72英寸 ,一般pt都会作为字体的单位来使用(印刷行业使用)
dpi: density per inch 每英寸像素密度
dp: 也称作 dip density independent pixel 密度无关像素,它在不同像素密度的屏幕中的显示比例保持一致
sp: scaled pixels 是可伸缩像素的意思
dp,sp是可以根据手机的不同进行适配的

   

<code>常用dpi标识(字母) 常用dpi标识(数字) 手机密度(density)                   
 ldpi                   120dpi             0.75
 mdpi                   160dpi             1.0
 hdpi                   240dpi             1.5
 xhdpi                  320dpi             2.0
</code>

   

计算方式:

定义:1dp = (dpi / 160) px
也就是1px = 1/density dp
即:1dp = density px

160dpi:1dp = 1px
120dpi:1dp = 0.75px
320dpi:1dp = 2px
dp值转换为px值得方法为:
假设手机密度 :density = x,dp的值为y
由1dp = density px
可知ydp = yx px
所以结果为yx

px值转换为dp值得方法为:
假设手机密度 :density = x,px的值为y
由1px = 1/density dp
可知 ypx = y/x dp
所以结果为y/x

获取屏幕尺寸

<code>double y = Math.pow(outMetrics.heightPixels / outMetrics.ydpi, 2);
double screenInches = Math.sqrt(x + y); //屏幕尺寸(英寸)
System.out.println("width : " + screenInches);</code>

总结:

在Android中文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。例如textSize=”16sp”、layout_width=”60dp”

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发Android频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved