DP与SP的区别

描述

刚接触Android的时候,被告知:

  • 长度和宽度用dp表示
  • 字体的大小用sp表示

也不知道为什么,就像这就是常识。然后就记住了。
后来工作了,不注意的时候也会用dp来表示字体的大小,发现和sp没什么区别。
于是越来越不知道dp和sp的区别了。

定义

我们知道,dp是Android中用来定义UI布局中表达元素尺寸或位置的一个虚拟的像素单位,dp的存在是为了页面元素位置不受屏幕密度所影响。
那么sp又是什么东东呢,官方的解释是:

Scale-independent Pixels – This is like the dp unit, but it is also scaled by the user’s font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user’s preference.

大概意思就是:

  • sp受屏幕密度影响,也受到用户字体大小的影响
  • 建议使用sp来跟随用户字体大小设置

实践

布局文件

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:text="这个是SPSPSP"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="这个是DPDPDP"/>

效果一样:

更改系统字体大小(从Normal改为Huge):

再看效果:

总结

通常情况下,建议使用sp作为字体的单位。
特殊情况除外,例如不想随着系统字体变化而变化的时候。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值