测量单位 px、dip、dp 和 sp 的区别是什么?
当前回答
dp 是 dip. 使用它为一切(边缘,粘贴等)。
只用 sp 为 {text-size}。
为了在不同的屏幕密度上获得相同的尺寸,Android在运行时间中将这些单元翻译成像素,所以没有什么可怕的数学。
在不同屏幕大小上看到 px、dp 和 sp 的差异。
此分類上一篇
来源:Android编程:The Big Nerd Ranch 指南
其他回答
来源1
来源2
源3(源3的数据如下)
这些是尺寸值定义在XML. 一个尺寸是指一个数字跟随一个尺寸单位. 例如: 10px, 2in, 5sp. 以下尺寸单位是由Android支持:dp 密度独立的像素 - 一个抽象单位,基于屏幕的物理密度. 这些单位是相对的160dpi(点每英寸)屏幕,在其中1dp是相当于1px
注意: 一个尺寸是一个简单的资源,使用在名称属性中提供的值(而不是 XML 文件的名称)。 因此,您可以在一个 XML 文件中将尺寸资源与其他简单的资源相结合,在一个元素下。
sp = 尺寸独立像素
dpi = 密度像素
sp 接收设备的文本大小,而 dp 接收设备密度标准(不会在设备中改变) 说 100sp 文本可以占用屏幕的 80% 或屏幕的 100% 取决于设备中设置的字体大小
使用 sp 和 dp 为 UX 考虑的文本大小。
此外,请注意,人们在手机上使用自定义字体,因此缺乏字体可能会导致空间和所有问题。 说文本大小12sp为自定义字体可能需要一些比默认字体额外的像素。
您可以从下图中看到 px 和 dp 的差异,您也可以发现 px 和 dp 无法在不同屏幕上保证相同的物理尺寸。
此分類上一篇
由官方文档复制的答案所列的 dp 和 sp 单元之间的差异可以通过更改“设置”>“可用性”>“长文本”选项在运行时看到。
大文本选项使文本变成1.3倍。
private static final float LARGE_FONT_SCALE = 1.3f;
这可能当然是供应商依赖的,因为它在包 / 应用程序 / 设置。
dp-to-pixel 比例与屏幕密度相匹配,但不一定是直接比例。
注意:编辑器接受“dip”和“dp”,尽管“dp”与“sp”更一致。
尺寸独立的Pixels - 这类似于dp单元,但它也按用户的字体大小偏好进行尺寸。
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件