像素,px,dip,图片大小100x100,分辨率

来源:互联网 发布:2016淘宝造物节发布会 编辑:程序博客网 时间:2024/05/01 03:34

像素(px):是构成数码影像的基本单元,通常以像素每英寸PPI (pixels per inch)为单位来表示影像分辨率的大小。

100x100  100个像素

从UI设计师的角度理解:
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=\sqrt{800^{2} +480^{2 }}
=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提供了一组范围让我们使用,见下图:






0 0