您的位置:首页 > 移动开发 > Android开发

Android分辨率处理方案

2012-06-05 14:43 218 查看
像素(Pixel = picture element):

“像素”(Pixel)是由
Picture(图像)
和 Element(元素)这两个单词的字母所组成的,是用来计算数码影像的一种单位,如同摄影的相片一样,数码影像也具有连续性的浓淡阶调,我们若把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位“像素”(Pixel)。这种最小的图形的单元能在屏幕上显示通常是单个的染色点。越高位的像素,其拥有的色板也就越丰富,越能表达颜色的真实感。

点有时用来表示像素,特别是计算机市场营销人员,因此ppi有时缩写为DPI(dots per inch)。用来表示一幅图像的像素越多,结果更接近原始的图像。一幅图像中的像素个数有时被称为图像解析度,虽然解析度有一个更为特定的定义。
像素可以用一个数表示,譬如一个"0.3兆像素"
数码相机,它有额定三十万像素,或者用一对数字表示,例如“640乘480显示器”,它有横向640像素和纵向480像素(就像VGA显示器那样),因此其总数为640
× 480 = 307,200像素
。数字化图像的彩色采样点(例如网页中常用的JPG文件)也称为像素。取决于计算机显示器,这些可能不是和屏幕像素有一一对应的。在这种区别很明显的区域,图像文件中的点更接近纹理元素。在计算机编程中,像素组成的图像叫位图或者光栅图像。

 

密度(Density):

         度量像素往往使用PPI(每英寸像素)或者DPI(每英寸点阵),当英寸数量是固定的情况下,往往使用密度来度量像素的排列控件,密度越高像素在一英寸的中的密集度就越高。

密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。

 

Android常用像素与密度定义:

低密度(120),ldpi
中密度(160),mdpi
高密度(240),hdpi
小屏幕
QVGA(240×320),2.6~3.0寸
普通屏幕
·WQVGA(240×400),3.2~3.5寸
·FWQVGA(240×432),3.5~3.8寸
·HVGA(320×480),3.0~3.5寸
·WVGA(480×800),3.3~4.0寸
·FWVGA(480×854),3.5~4.0寸
大屏幕
·WVGA(480×800),4.8~5.5寸
·FWVGA(480×854),5.0~5.8寸
 

例如:QVGA的标准像素为240px(横向)×320px(纵向)一般使用2.6-3.0英寸的屏幕

这个度量单位是指:以屏幕的对角线长度作为依据的长度。这样就可以知道实际的像素密度:平均每英寸包含120个像素。

 

Android常用单位:

密度无关的像素(DIP)

指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。
一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为160DPI的屏幕上的像素是一致的,这也是Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:pixels
= dips * (density / 160)。举个例子,在DPI为240的屏幕上,1个DIP等于1.5个物理像素。我们强烈推荐你用DIP来定义你程序的界面布局,因为这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。

从理论上看,Android解决方案适合任何像素密度。为方便起见,Google制定出一些主
要计数单位:规定1ldpi=120dpi,1mdpi=160 dpi,1hdpi=240 dpi,1xhdpi=320 dpi。为推动这一方案,Google力劝软件人员为不同DPI显示屏提供资源,确保其应用在任一款设备上看起来更漂亮。

因此我们强烈建议大家在布局控件时,使用DP(DIP)为单位,它能保证组件在不同分辨率中合理显示。

刻度像素(SP=Scaled Pixel):

将尺寸定义成该单位,字体会随着用户字体设置的改变而改变。

 

Google建议为不同的分辨率设置不同的图像资源和布局文件。

res/layout/my_layout.xml             // layout for normal screen size ("default")

res/layout-small/my_layout.xml       // layout for small screen size

res/layout-large/my_layout.xml       // layout for large screen size

res/layout-xlarge/my_layout.xml      // layout for extra large screen size

res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

res/drawable-mdpi/my_icon.png        // bitmap for medium density

res/drawable-hdpi/my_icon.png        // bitmap for high density

res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息