Android dp sp 的区别

2022-12-02 14:53:17 浏览数 (1)

代码语言:javascript复制
px : 其实就是像素单位,比如我们通常说的手机分辨列表800*400都是px的单位
sp : 同dp相似,还会根据用户的字体大小偏好来缩放
dp : 虚拟像素,在不同的像素密度的设备上会自动适配
dip: 同dp

由此可以看出使用sp作为字体大小单位,会随着系统的字体大小改变,而dp作为单位则不会。 而 dp 也叫 dip,是 device independent pixels

1.dp、sp、px的TextView XML代码如下:

代码语言:javascript复制
    <TextView
        android:text="Hello World!"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

    <TextView
        android:text="Hello World!"
        android:layout_width="150sp"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

    <TextView
        android:text="Hello World!"
        android:layout_width="150px"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

2.接下来是dp、sp、px的Button XML的代码:

代码语言:javascript复制
    <Button
        android:text="Hello World!"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

    <Button
        android:text="Hello World!"
        android:layout_width="200sp"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

    <Button
        android:text="Hello World!"
        android:layout_width="200px"
        android:layout_height="wrap_content"
        tools:ignore="MissingConstraints" />

因此通常情况下,我们还是建议使用sp作为字体的单位,除非一些特殊的情况,不想跟随系统字体变化的,可以使用dp

xml

0 人点赞