测量单位 px、dip、dp 和 sp 的区别是什么?
当前回答
dp 是 dip. 使用它为一切(边缘,粘贴等)。
只用 sp 为 {text-size}。
为了在不同的屏幕密度上获得相同的尺寸,Android在运行时间中将这些单元翻译成像素,所以没有什么可怕的数学。
在不同屏幕大小上看到 px、dp 和 sp 的差异。
此分類上一篇
来源:Android编程:The Big Nerd Ranch 指南
其他回答
来自Android开发者文档:
px 像素 - 符合屏幕上的实际像素. 在英寸 - 基于屏幕的物理尺寸. 1 英寸 OR 2.54 厘米 mm > 毫米 - 基于屏幕的物理尺寸. pt > 点 - 1/72 英寸基于屏幕的物理尺寸. dp 或 dip > 密度独立的像素 - 基于屏幕的物理密度的抽象单位。
从了解密度独立在Android:
Density Bucket | Screen Density | Physical Size | Pixel Size |
---|---|---|---|
ldpi | 120 dpi | 0.5 x 0.5 in | 0.5 in * 120 dpi = 60x60 px |
mdpi | 160 dpi | 0.5 x 0.5 in | 0.5 in * 160 dpi = 80x80 px |
hdpi | 240 dpi | 0.5 x 0.5 in | 0.5 in * 240 dpi = 120x120 px |
xhdpi | 320 dpi | 0.5 x 0.5 in | 0.5 in * 320 dpi = 160x160 px |
xxhdpi | 480 dpi | 0.5 x 0.5 in | 0.5 in * 480 dpi = 240x240 px |
xxxhdpi | 640 dpi | 0.5 x 0.5 in | 0.5 in * 640 dpi = 320x320 px |
Unit | Description | Units Per Physical Inch | Density Independent? | Same Physical Size On Every Screen? |
---|---|---|---|---|
px | Pixels | Varies | No | No |
in | Inches | 1 | Yes | Yes |
mm | Millimeters | 25.4 | Yes | Yes |
pt | Points | 72 | Yes | Yes |
dp | Density Independent Pixels | ~160 | Yes | No |
sp | Scale Independent Pixels | ~160 | Yes | No |
更多信息也可以在Google设计文档中找到。
dp 是 dip. 使用它为一切(边缘,粘贴等)。
只用 sp 为 {text-size}。
为了在不同的屏幕密度上获得相同的尺寸,Android在运行时间中将这些单元翻译成像素,所以没有什么可怕的数学。
在不同屏幕大小上看到 px、dp 和 sp 的差异。
此分類上一篇
来源:Android编程:The Big Nerd Ranch 指南
屏幕大小 实际的物理大小,测量为屏幕的直径. 为了简单,Android将所有实际的屏幕大小组成四个通用大小:小,正常,大,和超大。 屏幕密度 屏幕的物理区域内的像素数量; 通常称为dpi(点每英寸)。 例如,一个“低”密度屏幕在特定物理区域内有较少的像素,比较
当添加多个屏幕支持时,应用程序不直接与分辨率工作;应用程序应仅涉及屏幕大小和密度,如一般化大小和密度组所规定的。
屏幕尺寸和密度
定义
px 或 dot 是物理屏幕上的像素。
dpi 是物理屏幕上的每英寸像素,代表屏幕密度。
Android 给多种密度的 alias 名称
ldpi (低) ~120dpi mdpi (中) ~160dpi hdpi (高) ~240dpi 大多数设备在2015年在这里 xhdpi (超高) ~320dpi Apple iPhone 4/5/6, Nexus 4 xxhdpi (超高) ~480dpi Nexus 5 xxxhdpi (超高) ~640dpi
dip 或 dp 是密度依赖的像素,即它们根据物理密度相当于多或少的像素。
1dp = 1px 在 mdpi 上
此分類上一篇
sp 或 sip 是尺寸独立的像素,它们在“大文本”选项在“设置” >“可用性”中启动时进行尺寸。
1sp = 1dp 1sp = 1.2dp 可用性 大文本
用什么?
来源1
来源2
源3(源3的数据如下)
这些是尺寸值定义在XML. 一个尺寸是指一个数字跟随一个尺寸单位. 例如: 10px, 2in, 5sp. 以下尺寸单位是由Android支持:dp 密度独立的像素 - 一个抽象单位,基于屏幕的物理密度. 这些单位是相对的160dpi(点每英寸)屏幕,在其中1dp是相当于1px
注意: 一个尺寸是一个简单的资源,使用在名称属性中提供的值(而不是 XML 文件的名称)。 因此,您可以在一个 XML 文件中将尺寸资源与其他简单的资源相结合,在一个元素下。
推荐文章
- 改变开关的“开”色
- 以编程方式将EditText的输入类型从PASSWORD更改为NORMAL,反之亦然
- 如何在隐藏和查看密码之间切换
- 在Android上调整一个大的位图文件到缩放输出文件
- 如何更改Android版本和代码版本号?
- Android Studio突然无法解析符号
- 应用程序重新启动而不是恢复
- 如何设置整个应用程序在纵向模式?
- Android中文本的阴影效果?
- 以编程方式设置TextView的布局权重
- Android -如何覆盖“后退”按钮,所以它不完成()我的活动?
- 如何从通知点击发送参数到一个活动?
- 导航目标xxx对于这个NavController是未知的
- 使用ConstraintLayout均匀间距的视图
- 文件google-services错误。模块根文件夹中缺少Json。谷歌服务插件没有它就不能正常工作。