一、概念

DPI:DPI是Dots Per Inch的缩写,也就是“每英寸点数”,打印机分辨率。这里所说的“点”,在屏幕上并不是不变的,并不是唯一对应屏幕上的像素点,而是受到分辨率等因素的影响。这个点有可能是1个像素,也有可能是多个像素。一般是用于打印机的

PPI:是 Pixel per inch,每英寸像素数,图片分辨率。PPI越高图片越细腻。

DIP:DIP是指Density Independent Pixels,可以翻译为密度无关像素。和px相比,dip在不同密度的屏幕中实际显示比例将保持一致。根据规定,一个dp相当于160dpi屏幕中的一个px。在320dpi的屏幕中,一个dp相当于2个px。

dp:等于dip。在Android开界面布局文件时,dp是长度单位。

sp:scaled pixels(放大像素),与dp相似. 主要用于字体显示best for textsize。

px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。显示的风格不同,就像网页,在1280*800 中显示正常。1024*768 中显示乱掉。

Density:密度,是指屏幕里像素值浓度,其计算方式为分辨率/屏幕尺寸

二、Android中对Density的特别设计

为了适配不同android设备的屏幕尺寸,Android对屏幕密度做了重新的规定,将密度Density与屏幕分辨率绑定起来,给了固定的值。

屏幕

Tyep

宽度

Pixels

高度

Pixels

尺寸

Range(inches)

屏幕密度

QVGA

240

320

2.6-3.0

low

WQVGA

240

400

3.2-3.5

low

FWQVGA

240

432

3.5-3.8

low

HVGA

320

480

3.0-3.5

Medium

WVGA

480

800

3.3-4.0

High

FWVGA

480

854

3.5-4.0

High

WVGA

480

800

4.8-5.5

Medium

FWVGA

480

854

5.0-5.8

Medium

备注

目前android默认的low=120 ;Medium =160; High = 240

三、Android中的计算关系

在android源码包TypedValue.java中,我们看如下函数:

该函数功能:是把各单位换算为像素。

DisplayMetrics metrics)
{
switch (unit) {
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f/25.4f);
}
return 0;
}

DENSITY:密度的意思

metrics.density:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;

metrics.scaledDensity:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;

metrics.xdpi:默认值为DENSITY_DEVICE;

DENSITY_DEVICE:为屏幕密度

DENSITY_DEFAULT:默认值为160

---------------------------------------------

从Android的源码得知:

像素=dp*(屏幕密度/160)

dp=160*像素/屏幕密度

从上表可知Android规定分辨率320x480 的A屏幕密度为160dpi,分辨率480*800的B屏幕密度为240dpi

A:宽,dp=160*320/160=320

B:宽,db=160*480/240=320

由此可见,Android里用dp单位,1dp在320*480和480*800的分辨率的屏幕下是一样的,显示效果是一样的

科普dip,dp,sp,dpi,ppi,px,Density相关推荐

  1. 浅谈屏幕适配 dp dip sp dpi ppi px sp

    一.Drawable资源文件夹之间的关系 Android开发中,UI一般会制作多种图片素材,根据素材的分辨率大小,放在如下几个文件夹中: Android 工程里 res 目录下的 drawable-h ...

  2. android ui的几个概念:px,dip(dp),sp,dpi,分辨率等

    1.px (pixels)像素 – 是像素,就是屏幕上实际的像素点单位.  dip或dp (device independent pixels)设备独立像素, 与设备屏幕有关.  sp (scaled ...

  3. Android 屏幕dp、dpi、px、ppi、density的区别

    Android屏幕中dp.dpi.px.ppi的区别 px:像素 ppi:指每英寸所拥有的像素数量 dpi:指每英寸所拥有的点的数量(点的大小不一定是像素大小,但在考虑屏幕的时候dpi=ppi) dp ...

  4. dpi px dip dp sp density 以及公式换算 整理

    屏幕尺寸: 是指屏幕对角线的长度,而且单位为英寸(1英寸=2.54厘米(约)). 屏幕分辨率: 像素总点数 width*height 屏幕像素密度(dpi):每英寸屏幕上像素的密度 dpi计算公式: ...

  5. dp的定义原理和dpi,ppi,px,sp之间的区别

    扩展知识: 1080p和720p是什么意思 百度百科分辨率中最后一段话不明白的,可以参考这里 在开始讲解dp前,先来认识一些概念: 相关尺寸单位 px(pixel 像素):屏幕上的点,一般HVGA代表 ...

  6. dp的定义原理和dpi,ppi,px,pt,sp之间的区别

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/48007855 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  7. dp的定义原理和dpi ppi px pt sp之间的区别

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/48007855   文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...

  8. Android开发中dp、dpi、px的区别(转)

    基本概念 - dp:安卓中的相对大小 - dpi:(dot per inch)每英寸像素多少 - px:像素点 二.详细说明 1.px和dpi - px: 平常所说的1920×1080只是像素数量,也 ...

  9. Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明

    dip(dp): device independent pixels(设备独立像素) dip,就是把屏幕的高分成480分,宽分成320分.比如你做一条160dip的横线,无论你在320还480的模拟器 ...

最新文章

  1. ASP.NET用户登录模块代码
  2. “21天教你学会C++”
  3. gnuradio android手机,如何搭配USRP在安卓设备上搭建GNU Radio
  4. (转)创建X509证书,并获取证书密钥的一点研究
  5. 人脑意识转入量子计算机,人脑产生意识:可能是因为量子纠缠
  6. 一把误操作卖出500万股,TCL科技李东生致歉:收益归公司
  7. tomcat7.0支持什么版本的jdk_JDK/Java 16 可能带来什么新特性?
  8. Spring bean作用范围
  9. iPhone 的续航有望加长!749 元的“磁吸充电宝”你会买吗?
  10. JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度
  11. 机器学习建模的问题大全
  12. 一批工业机械网站交换友情链接
  13. 软件工程Java毕设 SSM药品管理系统(含源码+论文)
  14. pl sql面试题_PL SQL面试问答
  15. C# 连接本地数据库
  16. 学计算机编程要学什么软件有哪些内容,加工中心自学电脑编程应该学习什么软件...
  17. mysql rpl_MySQL增强半同步参数rpl_semi_sync_master_wait_point值AFTER_SYNC和AFTER_COMMIT
  18. mbp touchbar设置_macbookpro touchbar 怎么添加锁屏快捷键
  19. 出师未捷先被封!三款APP宣战微信 来一个封一个?
  20. 使用PowerDesigner逆向工程生成pdm文件(超全)

热门文章

  1. oracle判断数据出现交叉,Oracle!你必须要知道的Knowledge points(一)
  2. 计算机主机箱前后都有什么,目前四种热门的主机机箱设计都有哪些优缺点?
  3. Ubuntu16.04amp;amp;Windows 10双系统安装教程(UEFI模式)
  4. 快速搭建springmvc+spring data jpa工程
  5. php 串口通信例程,HAL库串口通信例程
  6. Nvidia CUDA初级教程4 GPU体系架构概述
  7. (2021) 22 [持久化] 1-Bit的存储
  8. 一秒执行一次_《一秒钟》:一贯的粗旷式抓大放小,张艺谋的自命题作业总是要观众自己再做一遍...
  9. python,pytorch:读取,保存,显示图片
  10. MySQL管理利器 MySQL Utilities---mysqlreplicate