概述
像素(px):是构成数码影像的基本单元,通常以像素每英寸PPI (pixels per inch)为单位来表示影像分辨率的大小。
100x100 100个像素
px(像素)是我们UI设计师在PS里使用的(不解释),同时也是手机屏幕上所显示的(也不解释)
dp是开发写layout的时候使用的尺寸单位,sp是开发写layout时关于字体的字号单位,且dp与sp总为1:1关系。
Android支持四种不同的dpi模式:ldpi mdpi hdpi xhdpi
一般地,手机分辨率与所运行的dpi模式是匹配的,例如hvga(320x480像素)的手机屏幕一般在3.5英寸左右,运行在mdpi模式下(也有例外,稍后解释)(这个是ROM控制的,app不能改变)。当运行在mdpi下时,1dp=1px:也就是说设计师在PS里定义一个item高48px,开发就会定义该item高48dp;Photoshop中14px大的字体,开发会定义为14sp。
对于一部wvga(480x800)手机(G7、N1、NS),一般是运行在hdpi模式下。当运行在hdpi模式下时,1dp=1.5px:也就是说设计师在PS里定义一个item高72px,开发就会定义该item高48dp;Photoshop中21px大的字体,开发会定义为14sp。
所以,当你的app需要适配多个dpi模式的时候(例如同时适配mdpi与hdpi),若你在wvga下做设计,你需要将你的各数值都为3的倍数,并在切图标注时将所有的数字除以3乘以2换算成dp,这样开发的同一套layout就能用在两个不同的dpi模式下,而不是写两套layout。
mdpi与hdpi是2:3的关系
mdpi与xhdpi是1:2的关系
ldpi与mdpi是3:4的关系
一、度量单位的定义
1、dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA(800*480)、HVGA和QVGA 推荐使用这个,不依赖像素。
dp是开发写layout的时候使用的尺寸单位,sp是开发写layout时关于字体的字号单位。
2、分辨率是屏幕图像的精密度,是指显示器所能显示的像素点的多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。
3、px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。px是分辨率的单位,也就是说320x480的分辨率内,共有153600px个像素。
4、屏幕密度:表示每英寸有多少个显示点,与分辨率是两个不同的概念。单位是dpi(dot per inch)。
比如:计算WVGA(800*480)分辨率,3.7英寸
DPI=
=933/3.7=252
屏幕大小
根据屏幕对角线实际测量的物理大小(android已经根据屏幕大小分为四类small, normal, large, extra large),具体怎么划分的下面会提到。
屏幕密度
屏幕物理区域一个单位(一般用英寸)的像素数量,一般简称dpi(dots per inch,每英寸上的点数,记住DPI这个概念很重要)屏幕密度也分为四类 low, medium, high, extra high,他们的比例关系是 0.75:1:1.5:2,具体的值为120:160:240:320。
屏幕方向
屏幕方向分为横屏和竖屏。
分辨率
一个物理屏幕上像素点的总数。一般我们的App不会直接使用分辨率,而是使用密度和屏幕大小。
独立像素单位(Density-independent pixel (dp))
一个虚拟的单位,用来决定UI布局的。用来表述布局的尺寸或者位置。
dp是一个与屏幕密度有关系的单位,dp与像素的换算关系为 px = dp * (dpi / 160)。例如在240密度(dpi)的屏幕上一个dp等于1.5个像素。以后我们应该尽量使用dp单位布局,不要使用像素单位。这样会使你的app屏幕兼容性更好
Android1.6开始就支持多屏幕和密度了,这都是为了更好的用户体验,为了简化我们多屏幕的开发,当然这要声明<uses-sdk android:minSdkVersion="4" />或者大于4。android提供了一组范围让我们使用,见下图:
最后
以上就是爱撒娇柜子为你收集整理的像素,px,dip,图片大小100x100,分辨率的全部内容,希望文章能够帮你解决像素,px,dip,图片大小100x100,分辨率所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复