设为首页 加入收藏

TOP

Android分辨率处理方案
2014-11-24 12:29:30 来源: 作者: 【 】 浏览:0
Tags:Android 分辨率 处理 方案

像素(Pixel = picture element):


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


点有时用来表示像素,特别是计算机市场营销人员,因此ppi有时缩写为DPI(dots per inch)。用来表示一幅图像的像素越多,结果更接近原始的图像。一幅图像中的像素个数有时被称为图像解析度,虽然解析度有一个更为特定的定义。


像素可以用一个数表示,譬如一个"0.3兆像素" 数码相机,它有额定三十万像素,或者用一对数字表示,例如“640480显示器,它有横向640像素和纵向480像素(就像VGA显示器那样),因此其总数为640 × 480 = 307,200像素。数字化图像的彩色采样点(例如网页中常用的JPG文件)也称为像素。取决于计算机显示器,这些可能不是和屏幕像素有一一对应的。在这种区别很明显的区域,图像文件中的点更接近纹理元素。在计算机编程中,像素组成的图像叫位图或者光栅图像。


密度(Density):


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


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


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


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


Android常用单位:


密度无关的像素(DIP


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


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


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


刻度像素(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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java NIO原理图文分析及代码实现 下一篇Android 垂直Seekbar【源码】

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·python数据分析岗的 (2025-12-25 10:02:21)
·python做数据分析需 (2025-12-25 10:02:19)
·成为一个优秀的pytho (2025-12-25 10:02:16)
·Java后端面试实习自 (2025-12-25 09:24:21)
·Java LTS版本有哪些 (2025-12-25 09:24:18)