android px sp dp,Android px,sp,dp,sp 之间的关系

本文详细介绍了Android设备中屏幕尺寸、分辨率、像素密度(ppi/dpi)、像素单位(px、dp、sp)的概念,并提供了计算方法。强调了在Android开发中,文字尺寸应使用sp,非文字尺寸使用dp,以实现屏幕适配。同时,解释了dpi和density的关系,以及如何根据设备的dpi转换dp和px的值。
摘要由CSDN通过智能技术生成

先来说说基本的概念吧:

手机的尺寸: 屏幕对角线的长度,单位为英寸(2.54cm)

手机的分辨率:屏幕能显示的像素的数量, 一般用在长方向上数量宽方向上数量来表达,即经常说的19201080

手机的像素密度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是可以根据手机的不同进行适配的

常用dpi标识(字母) 常用dpi标识(数字) 手机密度(density)

ldpi 120dpi 0.75

mdpi 160dpi 1.0

hdpi 240dpi 1.5

xhdpi 320dpi 2.0

计算方式:

定义: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

获取屏幕尺寸

double y = Math.pow(outMetrics.heightPixels / outMetrics.ydpi, 2);

double screenInches = Math.sqrt(x + y); //屏幕尺寸(英寸)

System.out.println("width : " + screenInches);

总结:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值