科普dip,dp,sp,dpi,ppi,px,Density
来源:互联网 发布:吉林大学网络课程中心 编辑:程序博客网 时间:2024/06/01 08:50
一、概念
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 中显示乱掉。
二、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
- 关于px,em,pt,ppi,dpi,dp,dip和sp
- Android中px, ppi, dpi, dp, dip, sp概念解析
- Android中dp、dip、dpi、ppi、px、sp的区别
- android度量单位:px、dpi、density、dp、dip、sp
- Android 关于dp dip sp px dpi density解析
- dpi px dip dp sp density 以及公式换算 整理
- android dp sp px dpi dip density 之水落石出
- dp, dpi, ppi, sp, px 详细介绍
- dpi ppi px pt dp sp区别
- dp、sp、px、dpi、ppi、pt详解
- dpi,dp,dip,px,density区别
- Android屏幕适配问题,dip,px,dpi,ppi,sp,density,分辨率,尺寸详细解释及转换
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt说明
- px dpi dip density
- android 适配相关知识(一) -- density dpi px dp dip sp 解释
- 更正:关于UFT12.51破解事宜
- git常用指令
- 微信JS分享实战代码
- Putty Command-Line Parameter
- 每天一点python -- python字典排序
- 科普dip,dp,sp,dpi,ppi,px,Density
- Ubuntu下编译Openpilot
- PowerShell 之 DNS Server (1)
- 使用PCH及巧妙使用NSLog
- 关于OpenCV的那些事——相机姿态更新
- 点击文字弹出一个DIV层窗口代码
- 面向对象的编程——只想new一个更好的对象
- 解析URL参数 获取参数值(二维码URL解析)
- 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾