Android如何解决显示屏尺寸适配问题

fmms 12年前
     <p><img title="Android如何解决显示屏尺寸适配问题" alt="Android如何解决显示屏尺寸适配问题" src="https://simg.open-open.com/show/607757be5214e643ee4403ec6a1da0f1.jpg" width="550" height="334" /></p>    <p>Android软件人员最担忧的Android分裂性问题之一当属显示屏的不同尺寸。因每一部手机分辨率不同,软件人员需要精确计算出设计图标、照片、视频游戏背景和对话框等的占用空间。但Google表示已经从根本上解决了这一曾困扰Palm软件人员的分辨率问题。</p>    <p>实际上,早在第一款Android手机上市前,Google就已经推出一套解决方案,不仅解决了不同的像素分辨率为题,还解决了像素密度问题,像素密度指的是每英寸像素数量。Android结构工程师黛安·哈克本(Diane Hackborn)在<a href="/misc/goto?guid=4958326929944239618" target="_blank">Google+中描述</a>了公司理念:</p>    <p>我们解决显示屏分辨率问题的动机来源于Palm/PalmSource体验。Palm设备传统上采用160x160显示屏。最初,索尼推出 320x320 显示屏,应用坐标只需扩大一倍即可,软件人员仍能够认为自己是在160x160的显示屏上操作,操作系统通过转换并利用高分辨率显示屏显示更清晰的文本和 绘图。</p>    <p>但后来该策略在遭遇QVGA [320x240]显示屏时出现问题。由于QVGA [320x240]显示屏用于大量设备,其生产成本较低。将书写区域放置在显示屏底部,仍能够获得应用所需的预期空间。但其密度在160x160和 320x320之间,缩放比例为1.5倍时,问题就出现了。</p>    <p>将目标尺寸缩放1.5倍,原来的实线将因实际显示屏分辨率不同而出现不同程度的暗淡斑点。为解决Android面临的显示屏尺寸和分辨率挑战,该操作系统采用密度独立像素(其缩写为dp或dip)方案。</p>    <p> Android针对显示屏分辨率提出的解决方案配合大量布局工具使用。Meridian Apps软件人员尼克·法伦纳(Nick Farina)在博客中称:“一旦软件人员掌握了布局工具,就能够在布局时对肖像/平面设备方向及不同显示屏尺寸进行自动调整。”</p>    <p>Android工程师罗曼·盖伊(Romain Guy)指出:“如果你在应用中标出的按钮为100像素的宽度,该按钮在640x480像素设备中看起来较320x480像素设备中要小得多。现在,如果 你对按钮的宽度标为100dip,该按钮尺寸在两款设备上看起来是一样的。”</p>    <p><img title="Android如何解决显示屏尺寸适配问题" alt="Android如何解决显示屏尺寸适配问题" src="https://simg.open-open.com/show/d523326d79d71ef83e2b4b7a2e9b12a4.jpg" width="400" height="163" /></p>    <p>从理论上看,Android解决方案适合任何像素密度。为方便起见,Google制定出一些主要计数单位:规定 1ldpi=120dpi,1mdpi=160 dpi,1hdpi=240 dpi,1xhdpi=320 dpi。为推动这一方案,Google力劝软件人员为不同DPI显示屏提供资源,确保其应用在任一款设备上看起来更漂亮。</p>    <p>这就需要编码员和图形设计人员做些先期工作。哈克本说,做好先期工作将保证软件能够很好地适应Galaxy Nexus及其316dpi、1280x720显示屏。</p>    <p>哈克本说:“目前Android及其应用在Galaxy Nexus上运行得相当好。”Android解决方案非常灵活。当然,Google从一开始就将Android定位为一款面向众多制造商的操作系统。苹果iPhone则情况迥异,苹果一直牢牢掌控着iPhone。</p>    <p>软件人员密切关注iOS的每一个像素。iPhone 4问世后,其显示屏分辨率由480x320增长至960x640。大量迹象表明苹果下一代iPad显示屏分辨率将由第一代iPad的1024x768分辨率增长至2048x1536。<br /> <br /> 本文转载自: <a href="/misc/goto?guid=4958326930761746288" rel="nofollow" target="_blank">http://www.rtdot.com/product/30</a> </p>