最近在学习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。

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

更多相关文章

  1. Canonical 宣布 Ubuntu for Android(安卓)项目
  2. 【Android手机游戏】贪吃蛇(1)
  3. 用angularjs写android应用连手机调试的步骤
  4. Android是什么 之三手机之硬件形态
  5. android:paddingLeft与android:layout_marginLeft的区别
  6. Android手势滑动(左滑和右滑)
  7. Android定时器的使用,
  8. (Android)react-native获得手机的Android版本号
  9. android camera(一):camera模组CMM介绍

随机推荐

  1. Linux基本知识(四):Android常用自动化命令
  2. Android(安卓)studio 添加JNI后报错
  3. Dev Guide_Android(安卓)Basics_Applicat
  4. 待研究
  5. Android(安卓)build.gradle 问题:transfor
  6. android ContextMenu 上下文菜单示例
  7. Android(安卓)Url合法性校验
  8. Test_TextSwitcher 使用方法
  9. Android(安卓)6.0 权限管理工具类
  10. Developing.Android.Applications.with.F