Android 尺寸预复习

以下为Android开发中会遇到的尺寸名词

  • px:Pixels(像素)
  • dpi:Density Independent Pixels(密度无关像素)
  • dip:Dot Per Inch(每英寸上的像素点数量)
  • sp:Scale Independent Pixels(缩放无关像素)

接下来看一张显示屏示意图
屏幕示意
屏幕的「对角线长」就是我们平常所说手机的「屏幕尺寸」。如4.7寸,5.8寸等等。1英寸=2.54厘米

在各个手机的参数里我们总能看见一个重要的参数「分辨率」。
分辨率 = 屏幕高度像素 * 屏幕宽度像素。如1920 * 1080,就是指手机屏幕每一行有1080个像素,一共有1920行。像素是显示的最基本单位。那么这部手机的总分辨率就是1920 * 1080 = 2,073,600(两百万像素)。
以上我们说的尺寸单位全都是Pixels(px)。它是最基本单位

PS:试想我们平常拍照生成的全质量图片都是上千万的像素,我们完全可以压缩到200多万像素,这样在不放大的情况下既不会影响到呈现质量,也更节约了手机存储空间。用来做壁纸就非常合适。

Dpi(Dot Pixels Inch):

意思如其名:屏幕上每一英寸的像素数量。
这里有一个计算公式:
在这里插入图片描述
意思为在这里插入图片描述
根号得到屏幕对角线的像素数量,除以对角线长(单位英寸),就得到对角线上每一英寸的像素数量
假如屏幕的尺寸是5.8英寸,分辨率为1920 * 1080P,根据公式计算得出该屏幕的dpi = 380。外界非开发专业人士更喜欢用ppi来表示,通常他们会说380ppi。

Dip(Density Independent Pixels):

Android开发中我们使用的dp单位就是它。以下简称dp

dp是一个与像素没有关系的单位,我们知道屏幕显示的最小单位是像素px。
尽管我们单位使用的dp,最终手机却会自动给我们转化为px进行绘制。
But,在不同的dpi手机里,系统转化为的px不尽相同。

谷歌官方有明确的文档说明:在160dpi的手机里,1dp = 1px。
在320dpi的手机里,1dp = 2px。
在480dpi的手机里,1dp = 3px。
我们不难得出结论,dip = 屏幕dpi / 160dpi

举例:我们使用的1080P手机,基本上都是480dpi级别。也就是我们在xml文件里定义的1dp,最终呈现在屏幕上,就会是3px。
而我们使用的720P手机,基本位于320dpi级别,我们在xml文件里定义的1dp,最终呈现在屏幕上,会是2px。
这样就能够极大程度的帮助我们针对不同的手机做UI适配,从而抛弃了以前那种繁重愚蠢的多个分辨率配置文件定义不同px的方案。
给一张其他博客的示意图
在这里插入图片描述

SP(Scaled Independent Pixels):

谷歌官方建议文字单位全部使用sp,这样的话当用户在设置里面修改文字显示大小的时候会对以sp为单位的文本生效。这样能兼顾一些视力不太好的用户群体。
如果我们对文字使用dp或px单位,那么用户在设置里面修改文字大小将对这些文字不生效,带来不好的用户体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值