Android的px、dip、sp的区别

本文详细介绍了Android开发中UI尺寸单位的选择与应用,包括px、dip(dp)、sp等单位的区别及其应用场景,并通过实例说明了不同屏幕密度下的具体表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、       概述 
我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼 。 
在 Android 中支持的描述大小区域的类型有以下几种。 
px(pixels) ——像素:不同的设备显示效果相同,一般我们 HVGA 代表 320x480 像素,这个用的比较多。 

dip(device independent pixels) ——设备独立像素:这个和设备硬件有关,一般哦我们为了支持 WCGA 、 HVGA 和 QVGA 推荐使用这个,不依赖于像素。等同于 dp 。 

sp(scaled pixels — best for text size) ——带比例的像素。 
pt(points) ——磅: 1pt = 1/72 英寸 
in(inches) ——英寸 
mm(millimeters) ——毫米 

二、       详解 
sp 由于是放大像素,主要是用于字体显示,由此根据 google 的建议, TextView 的字体大小最好用 sp 做单位,而且查看 TextView 的源码可知 Android 默认使用水平作为字号单位。 

在 Android 中最常用到的还是 px 和 dip 。但是这两个之间到底有什么区别呢? 

在 HVGA 屏 density=160 ; QVGA 屏 density=120 ; WVGA 屏 density=240 ; WQVGA 屏 density=120 density 值 表示每英寸有多少个 显 示点,与分辨率是两个概念 。不同 density 下 屏幕 分辨率信息,以 480dip*800dip 的 WVGA(density=240) 为 例。 

density=120 时 屏幕 实际 分辨率 为 240px*400px (两个点 对应 一个分辨率) 
状 态 栏 和 标题栏 高各 19px 或者 25dip   
横屏是屏幕 宽 度 400px 或者 800dip, 工作区域高度 211px 或者 480dip 
竖 屏 时 屏幕 宽 度 240px 或者 480dip, 工作区域高度 381px 或者 775dip 

density=160 时 屏幕 实际 分辨率 为 320px*533px ( 3 个点 对应 两个分辨率) 
状 态栏 和 标题栏 高个 25px 或者 25dip   
横屏是屏幕 宽 度 533px 或者 800dip, 工作区域高度 295px 或者 480dip 
竖 屏 时 屏幕 宽 度 320px 或者 480dip, 工作区域高度 508px 或者 775dip 


density=240 时 屏幕 实际 分辨率 为 480px*800px (一个点 对 于一个分辨率) 
状 态栏 和 标题栏 高个 38px 或者 25dip   
横屏是屏幕 宽 度 800px 或者 800dip, 工作区域高度 442px 或者 480dip 
竖 屏 时 屏幕 宽 度 480px 或者 480dip, 工作区域高度 762px 或者 775dip 

apk 的 资 源 包中,当屏幕 density=240 时 使用 hdpi 标签 的 资 源 
当屏幕 density=160 时 ,使用 mdpi 标签 的 资 源 
当屏幕 density=120 时 ,使用 ldpi 标签 的 资 源。 
不加任何 标签 的 资 源是各种分辨率情况下共用的 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值