android关于屏幕画图的一些度量单位及概念(sp,dp,px,dpi,density)
来源:互联网 发布:网络淘宝涮单是真的嘛 编辑:程序博客网 时间:2024/05/16 18:03
对android的布局文件中常常用到的度量单位比较困惑,因此网上了解了一下,根据自己的了解,作如下整理和解释,有一些概念可能解释有误,留作日后改进。
1. 概念解释
(1)px--pixel, 像素,是一个数量单位,屏幕上实际的像素点单位,比如设定一个按钮的长度是100px,屏幕分辨率HVGA代表320×480 pixel。
(2)dpi--dot per inch,(dot是否可以理解为pixel?),是一个密度单位,屏幕像素密度,每英寸像素点的个数。
(3)density--屏幕密度,每英寸有多少个显示点,单位是dpi,dpi数越大,屏幕精细度越大。比如,屏幕密度是160dpi,240dpi。人们在提法上,往往把dpi等同于density,说的屏幕密度,屏幕像素密度往往是指同一个东西。
(4)dp--dip,device independent pixels,设备独立像素,是一个数量单位,与屏幕密度相关,不依赖像素。这个单位是为了在不同的屏幕密度上能够显示同样的大小。
(5)sp--scaled pixels,是一个数量单位,主要处理字体大小。android系统允许用户自定义字体大小(小,正常,大,超大等),当设为正常时,1sp=1dp=1/160=0.00625英寸。
(6)屏幕分辨率:只能说明屏幕总像素,不能说明屏幕精细度。需要综合屏幕分辨率和屏幕物理尺寸才能说明屏幕精细度。但是下面的屏幕名称,代表了这个屏幕的精细度。
- VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素;
- HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320,density=160 dpi;
- QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240,density=120 dpi;
- WVGA:Wide Video Graphics Array;即:扩大的VGA,分辨率为800×480像素, density=240 dpi;
- WQVGA:Wide Quarter VGA;即:扩大的QVGA,分辨率比QVGA高,比VGA低,一般是:400×240,480×270,density=120 dpi;
以上几种屏幕说明屏幕的精细度不同,对于同一种屏幕(比如HVGA的屏幕),它的大小也是指定在一定范围的。
屏幕
宽度
高度
尺寸
大小
密度
Type
(Pixels)
(Pixels)
Range (inches)
Size
Group
QVGA
240
320
2.6 - 3.0
Small
Low
WQVGA
240
400
3.2 - 3.5
Normal
Low
FWQVGA
240
432
3.5 - 3.8
Normal
Low
HVGA
320
480
3.0 - 3.5
Normal
Medium
WVGA
480
800
3.3 - 4.0
Normal
High
FWVGA
480
854
3.5 - 4.0
Normal
High
WVGA
480
800
4.8 - 5.5
Large
Medium
FWVGA
480
854
5.0 - 5.8
Large
Medium
2. 概念之间的关系
(1) 屏幕分辨率,density,屏幕物理尺寸大小的关系
density = pixs/inches(dpi)
屏幕分辨率是480×320,屏幕物理尺寸是3英寸×2英寸,
横向像素密度density = 480/3 = 160dpi;
纵向像素密度density = 320/2 = 160dpi;
大部分手机横向和纵向像素密度是相等的,因为大部分手机使用的像素点是正方形的。
(2) density,dp与px的关系
换算公式为pixs = dips * (density /160).
比如: 对于density = 240dpi的屏幕,画一个长度20dp,宽度10dp的按钮,
需要画的长像素数 = 20 * 240 / 160 = 30pixs;
需要画的宽像素数 = 10 * 240 / 160 = 15pixs;
还有另一种计算方式,Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),对应的密度比例因子dp/px为0.75,1, 1.5和2。则pixs = dp*a。比如,上面那个屏幕画同样的按钮:
需要画的长像素数 = 20 * 1.5 = 30pixs;
需要画的宽像素数 = 10 * 1.5 = 15pixs;
结论:相同的屏幕尺寸下,无论屏幕密度是多少,用dp表示的按钮的长宽都一样。程序最终都是以pix在屏幕上画出来的。
3. 使用
在屏幕上最终显示效果的影响因素有:屏幕的物理尺寸,屏幕像素密度dpi,使用何种单位(px,sp,dp等)表示图形的大小。
不建议使用px,因为同样的100px,在同样尺寸但不同dpi的屏幕上,显示的大小不同。一般来说,文字尺寸用“sp”,非文字尺寸用“dp”。
- android关于屏幕画图的一些度量单位及概念(sp,dp,px,dpi,density)
- android度量单位:px、dpi、density、dp、dip、sp
- 关于android中dpi px dp sp 单位的一些理解
- Android 关于dp dip sp px dpi density解析
- android 单位:px,dip(dp),sp,dpi
- Android屏幕适配 px,dp,dpi及density的关系与深入理解
- dpi 、dip 、分辨率、屏幕尺寸、px、density、sp的理解
- android dp sp px dpi dip density 之水落石出
- Android的尺寸单位:dp/sp/density
- Android屏幕适配(一)dp、px、dpi、sp的理解
- 关于Android中涉及屏幕适配的单位dp,px,sp,dip的学习笔记。
- android手机屏幕密度的计算及dp、px、sp单位的转换,屏幕适配相关
- Android中常用单位(dpi、px、dp、sp)
- android中的尺度单位:px、dpi、 dp、sp 、pt
- Android中常用单位(dpi、px、dp、sp)
- Android中常用单位(dpi、px、dp、sp)
- Android中常用单位(dpi、px、dp、sp)
- Android: density,dp,sp,px
- Delphi7中单元文件内各个部分的执行顺序
- python中格式化字符串输出的方法总结
- 【线段树(lazy)】poj 2777 Count Color
- linux下编译bochs-2.6.2
- 常用到的Web测试辅助工具
- android关于屏幕画图的一些度量单位及概念(sp,dp,px,dpi,density)
- Cocos2d-x 反复动画
- CF/359/C. Prime Number
- 【PHP自学笔记1】如何搭建配置PHP环境、云平台发布、第一个HelloWorld程序
- UVa:11624 Fire!
- IP摄像机
- 多线程笔试面试概念问答
- 如何将string转换为Date类型
- android串口通信实例分析