android中不同分辨率

几个很重要的概念:

ppi(pixels per inch) :图像分辨率 ------在图像中,每英寸所包含的像素数目

dpi(dots per inch):打印分辨率    ------每英寸所能答应的点数,即打印精度

 DPI最初用于衡量打印物上每英寸的点数密度,就是说你的打印机可以在一英寸内打多少个点。DPI值越小,图像越不精细。

当DPI的概念用在计算机屏幕上时,就对应称之为PPI,同理:PPI就是计算机屏幕上每英寸可以显示的像素点的数量。

 

1 可以用两种方式进行不同手机的适配。一种是在java代码中,另外一种是在xml文件中。

2 不同分辨率的手机,都有固定的屏高。

在Java代码中根据屏高为判定条件,为每一页下显示历史记录的条数做一个限制。

在xml进行手机匹配,主要是针对布局中空间太多,不方便在Java代码中修改的情况。针对不同手机的分辨率,建立对应的layout文件即可。例如在480*800之间建立layout-800*400 .建立了相应的layout后,还要在不同的手机上调整布局中的控件大小和位置。

像素pix:每一个px对应屏幕上的一个点。

分辨率:屏幕上拥有的像素的总数。

像素越大,分辨率也就越高。

通常来说 200万像素的数码相机,最大影像分辨率是1600×1200=192万像素,也就是说,实际的有效像素就是192万。  

通常所说的300万像素的数码相机,最大影像分辨率是2048×1536=3145728像素,也就是说有效像素为314万

 

 

dip或者dp(device independent pixels ,设备独立像素):一种基于屏幕密度的抽象意义上的像素,程序用它来定义界面元素。与实际密度无关的单位。构建一个布局方案。

一个与密度无关的像素,在逻辑尺寸上,与一个像素密度为160PPI 的屏幕上的像素是一致的(在每英寸160点的显示器上)。这是android平台所假定的默认显示设备。1dip=1px=1个物理像素。1px=dips*(density/160) 

 

 PPI(像素数目),也是就像素密度

Pixels Per Inch所表示的是图像中,每英寸所拥有的像素(Pixel)数目。因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度也就越高。

ppi具体的计算公式就是 分辨率平方后相加然后开平方,除以屏幕尺寸

 

 一些关键的知识点,dp sp pt 的一些换算单位

dp:Density_independent pixels 以160PPI屏幕为标准,则1dp=1px。dp和px的换算公式为dp*ppi/160=px   比如 1dp*320ppi/160=2px

sp:scale-independent pixels ,比例像素,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为100%,1sp=1px。

sp与px的换算公式:sp*ppi/160=px

在Android设计原则中,有提到这两个单位,官方建议文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。例如 textSize=16sp  layout_width=“60dp”

为什么要使用sp和dp代理px?最简单的原因是他们不会应为ppi的变化而变化,在相同物理尺寸和不同ppi下,他们呈现的高度大小是相同的。也就是说更接近物理呈现,而px则不行。

 

posted @ 2015-06-11 22:45  大大的海棠湾  阅读(248)  评论(0)    收藏  举报