最近在学习Android开发,一直没有弄清楚px,dp,dip,sp的区别。今天正好有时间,就花时间研究了一下。

    众所周知,Android厂商非常多,各种尺寸的Android手机、平板层出不穷。导致了Android生态环境的碎片化现象越来越严重。Google公司为了解决分辨率过多的问题,在Android的开发文档中定义了px,dp,dip,sp,方便开发者适配不同分辨率的Android设备。

1.基础知识:

    mm:millimeters 毫米,长度单位

    in:inches  英寸,长度单位,屏幕物理尺寸大小的基本单位。

    pt:points  一个标准单位,大小为一英寸的屏幕大小的1/72。

dpi: dots per inch 即每英寸的像素点。

举个例子:

假设QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),那么这部手机的dpi=160。

Screen size(屏幕尺寸)指的是手机实际的物理尺寸。

如iPhone4S是3.5英寸,这里指的是手机屏幕对角线的长度是3.5英寸。

Resolution(分辨率)指手机屏幕横、竖方向像素个数。

常见的手机分辨率:QVGA(240×320像素),HVGA(480×320像素),WVGA(800×480像素),720P(1280x720像素),1080P(1920x1080像素),2K(2560x1440像素)

  

2.基本定义:

    px (Pixel的缩写,即像素) 是指一个像素。

    sp  (scale-independent pixels)是指比例独立像素。

dip (device independent pixels)是指设备独立像素。

  dp:(Density-independent pixel)在Android文档中(http://developer.android.com/guide/practices/screens_support.html#terms),它的计算方法是:px = dp * (dpi / 160)。

看一下dp的单位是什么:像素 = dp的单位 * 像素/英寸  。可以看出dp的单位是长度单位英寸。1dp的长度 = 1 * dpi / 160 * 1 / dpi 英寸 = 1 / 160 英寸 。

dp的意义是:你可以根据看到的实际大小,在应用中设置对应的dp值,而使得不同的设备上看起来一样大。

3.不同之处

px(像素)表示屏幕的真实像素,比如现在流行的1080P手机和2K手机,1080P手机就是1920x1080像素,也就是说这个手机的屏幕横向有1080个像素,纵向有1920个像素。这个值是绝对的,是多少就是多少,不会改变。

sp(比例独立像素),也就是说是与密度和字体缩放度无关的像素,主要用于字体的大小。

dip(设备独立像素)这个是逻辑像素单位,其实就是dp。

欢迎讨论交流,我的邮箱是JohnTsai.Work@gmail.com。

    欢迎转载,转载请注明网址,谢谢!

在Android中,px,dp,dip,sp的不同之处的更多相关文章

  1. px,dp,dip,sp,in,mm,pt详细分析

    px,dp,dip,sp,in,mm,pt详细分析 px   :(pixels),屏幕的像素点,不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多. dip  :(devi ...

  2. Android中px和dip的区别

    在Android手机的诞生之初,由于Android系统是开源的,一开始便有众多的OEM厂商对Android手机进行深度定制,于是乎Android手机的皮肤和屏幕大小都变得百花齐放,这可苦逼了我们这群开 ...

  3. (转)Android中px与dip,sp与dip等的转换工具类

    功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方法中的参数请参考http://www.cnblogs.co ...

  4. android:px,dp(dip),sp的差别

    1.px:表示屏幕的实际像素,比如320*480的屏幕在横向有320个像素,在纵向有480个像素,假设指定的某个空间的单位为px.那么在不同分辨率下的手机上.显示的都是指定的大小.一般不推荐使用px. ...

  5. Android中px dpi dip density densityDpi 的相关说明

    转自:http://www.cnblogs.com/wader2011/archive/2011/11/29/2267490.html 概念解释 名词 解释 Px (Pixel像素) 不同设备显示效果 ...

  6. Android中px, ppi, dpi, dp, dip, sp概念解析

    Android中px, ppi, dpi, dp, dip, sp概念解析

  7. Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度

    ###########################################Android计量单位########################################### px ...

  8. Android的px、dip、sp的区别

    Android的px.dip.sp的区别 我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼. 在Android中支持的描述大小区域的类型有以下几种:   px(pix ...

  9. Android的计量单位px,in,mm,pt,dp,dip,sp

    android中dip.dp.px.sp和屏幕密度 1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持 ...

随机推荐

  1. 基于jquery地图特效全国网点查看代码

    基于jquery地图特效全国网点查看代码.这是一款简单实用的jQuery地图特效,主要知识点是jquery和css实现了中图地图,提示层效果.效果图如下: 在线预览   源码下载 实现的代码. htm ...

  2. [转]mybatis if test非空判断数字0为什么是false

    原文地址:http://blog.51cto.com/wangguangshuo/1944531 今天工作中发现一个Long类型的参数没有传到sql中去,在sql xml配置文件中是使用if test ...

  3. [转]Oracle存储过程给变量赋值的方法

    原文地址:http://blog.csdn.net/drbing/article/details/51821262 截止到目前我发现有三种方法可以在存储过程中给变量进行赋值:1.直接法     :=  ...

  4. [mount]linux 挂载时 mount: wrong fs type, bad option, bad superblock on /dev/sdb

    原因:挂载时未格式化,使用的文件系统格式不对 解决方案:格式化 sudo mkfs -t ext4 /dev/sdb 再挂载 sudo mount /dev/sdb /xxx/ 用df -h检查,发现 ...

  5. Tomcat性能优化(三) Executor配置

    http://hello-nick-xu.iteye.com/blog/2113853 http://blog.chinaunix.net/uid-12115233-id-3358004.html

  6. hive常用参数配置设置

    hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto.i ...

  7. EF code First数据迁移学习笔记

    准备工作 1.新建一个控制台项目, 在"程序包管理控制台"执行 Install-package EntityFramework  //安装EF环境 2.在项目下新建类(Paper) ...

  8. vbs中的"WScript.Network"[属性与方法]

    属性ComputerName                  计算机名UserDomain                    所属局域网域的域名UserName                 ...

  9. maven 从私仓库下载jar包

    pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  10. SpringBoot2 使用@RestController 无法返回一个地址,前台无法渲染为页面,只能返回json数据

    spring boot之访问静态页面 楼主前两天自学spring boot,然后在学习的过程中,出现一个疑问,就是如何去访问静态的html网页,这个问题,楼主上网上搜了下,找到的是在resource目 ...