Android的px、dip、sp的区别

一、 概述

我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。

在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标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。

更多相关文章

  1. Android主流屏幕分辨率介绍
  2. Android图形显示系统(一)
  3. Android屏幕适配 重点盘点
  4. Android开发:最全面、最易懂的Android屏幕适配解决方案
  5. Android中切换屏幕方向时Activity生命周期函数执行情况分析
  6. android应用程序四大组件
  7. Android界面布局
  8. [置顶] 关于Android分辨率的支持(转)
  9. Android(安卓)UI设计

随机推荐

  1. Android(安卓)L Preview 源码同步方法
  2. Android获得时间总结
  3. Android——编译release版签名系统
  4. android中加载assets中的资源文件
  5. 安卓开发10:常用控件-常用表单级别控件
  6. Android(安卓)[Camera 源码] 外接 USB 摄
  7. Android常用命令总结
  8. Android之有序广播
  9. Android获取手机本地图片缩略图
  10. 监听android home键的实现方式