在Android中,px,dp,dip,sp的不同之处
最近在学习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的不同之处的更多相关文章
- px,dp,dip,sp,in,mm,pt详细分析
px,dp,dip,sp,in,mm,pt详细分析 px :(pixels),屏幕的像素点,不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多. dip :(devi ...
- Android中px和dip的区别
在Android手机的诞生之初,由于Android系统是开源的,一开始便有众多的OEM厂商对Android手机进行深度定制,于是乎Android手机的皮肤和屏幕大小都变得百花齐放,这可苦逼了我们这群开 ...
- (转)Android中px与dip,sp与dip等的转换工具类
功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方法中的参数请参考http://www.cnblogs.co ...
- android:px,dp(dip),sp的差别
1.px:表示屏幕的实际像素,比如320*480的屏幕在横向有320个像素,在纵向有480个像素,假设指定的某个空间的单位为px.那么在不同分辨率下的手机上.显示的都是指定的大小.一般不推荐使用px. ...
- Android中px dpi dip density densityDpi 的相关说明
转自:http://www.cnblogs.com/wader2011/archive/2011/11/29/2267490.html 概念解释 名词 解释 Px (Pixel像素) 不同设备显示效果 ...
- Android中px, ppi, dpi, dp, dip, sp概念解析
Android中px, ppi, dpi, dp, dip, sp概念解析
- Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度
###########################################Android计量单位########################################### px ...
- Android的px、dip、sp的区别
Android的px.dip.sp的区别 我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼. 在Android中支持的描述大小区域的类型有以下几种: px(pix ...
- Android的计量单位px,in,mm,pt,dp,dip,sp
android中dip.dp.px.sp和屏幕密度 1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持 ...
随机推荐
- 基于jquery地图特效全国网点查看代码
基于jquery地图特效全国网点查看代码.这是一款简单实用的jQuery地图特效,主要知识点是jquery和css实现了中图地图,提示层效果.效果图如下: 在线预览 源码下载 实现的代码. htm ...
- [转]mybatis if test非空判断数字0为什么是false
原文地址:http://blog.51cto.com/wangguangshuo/1944531 今天工作中发现一个Long类型的参数没有传到sql中去,在sql xml配置文件中是使用if test ...
- [转]Oracle存储过程给变量赋值的方法
原文地址:http://blog.csdn.net/drbing/article/details/51821262 截止到目前我发现有三种方法可以在存储过程中给变量进行赋值:1.直接法 := ...
- [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检查,发现 ...
- Tomcat性能优化(三) Executor配置
http://hello-nick-xu.iteye.com/blog/2113853 http://blog.chinaunix.net/uid-12115233-id-3358004.html
- hive常用参数配置设置
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto.i ...
- EF code First数据迁移学习笔记
准备工作 1.新建一个控制台项目, 在"程序包管理控制台"执行 Install-package EntityFramework //安装EF环境 2.在项目下新建类(Paper) ...
- vbs中的"WScript.Network"[属性与方法]
属性ComputerName 计算机名UserDomain 所属局域网域的域名UserName ...
- maven 从私仓库下载jar包
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- SpringBoot2 使用@RestController 无法返回一个地址,前台无法渲染为页面,只能返回json数据
spring boot之访问静态页面 楼主前两天自学spring boot,然后在学习的过程中,出现一个疑问,就是如何去访问静态的html网页,这个问题,楼主上网上搜了下,找到的是在resource目 ...