Android如何解决显示屏尺寸适配问题
2012-01-30 11:12
357 查看
Android软件人员最担忧的Android分裂性问题之一当属显示屏的不同尺寸。因每一部手机分辨率不同,软件人员需要精确计算出设计图标、照片、视频游戏背景和对话框等的占用空间。但Google表示已经从根本上解决了这一曾困扰Palm软件人员的分辨率问题。
实际上,早在第一款Android手机上市前,Google就已经推出一套解决方案,不仅解决了不同的像素分辨率为题,还解决了像素密度问题,像素密度指的是每英寸像素数量。Android结构工程师黛安·哈克本(Diane Hackborn)在Google+中描述了公司理念:
我们解决显示屏分辨率问题的动机来源于Palm/PalmSource体验。Palm设备传统上采用160x160显示屏。最初,索尼推出320x320 显示屏,应用坐标只需扩大一倍即可,软件人员仍能够认为自己是在160x160的显示屏上操作,操作系统通过转换并利用高分辨率显示屏显示更清晰的文本和 绘图。
但后来该策略在遭遇QVGA [320x240]显示屏时出现问题。由于QVGA [320x240]显示屏用于大量设备,其生产成本较低。将书写区域放置在显示屏底部,仍能够获得应用所需的预期空间。但其密度在160x160和 320x320之间,缩放比例为1.5倍时,问题就出现了。
将目标尺寸缩放1.5倍,原来的实线将因实际显示屏分辨率不同而出现不同程度的暗淡斑点。为解决Android面临的显示屏尺寸和分辨率挑战,该操作系统采用密度独立像素(其缩写为dp或dip)方案。
Android针对显示屏分辨率提出的解决方案配合大量布局工具使用。Meridian Apps软件人员尼克·法伦纳(Nick Farina)在博客中称:“一旦软件人员掌握了布局工具,就能够在布局时对肖像/平面设备方向及不同显示屏尺寸进行自动调整。”
Android工程师罗曼·盖伊(Romain Guy)指出:“如果你在应用中标出的按钮为100像素的宽度,该按钮在640x480像素设备中看起来较320x480像素设备中要小得多。现在,如果 你对按钮的宽度标为100dip,该按钮尺寸在两款设备上看起来是一样的。”
从理论上看,Android解决方案适合任何像素密度。为方便起见,Google制定出一些主要计数单位:规定 1ldpi=120dpi,1mdpi=160 dpi,1hdpi=240 dpi,1xhdpi=320 dpi。为推动这一方案,Google力劝软件人员为不同DPI显示屏提供资源,确保其应用在任一款设备上看起来更漂亮。
这就需要编码员和图形设计人员做些先期工作。哈克本说,做好先期工作将保证软件能够很好地适应Galaxy Nexus及其316dpi、1280x720显示屏。
哈克本说:“目前Android及其应用在Galaxy Nexus上运行得相当好。”Android解决方案非常灵活。当然,Google从一开始就将Android定位为一款面向众多制造商的操作系统。苹果iPhone则情况迥异,苹果一直牢牢掌控着iPhone。
软件人员密切关注iOS的每一个像素。iPhone 4问世后,其显示屏分辨率由480x320增长至960x640。大量迹象表明苹果下一代iPad显示屏分辨率将由第一代iPad的1024x768分辨率增长至2048x1536。
实际上,早在第一款Android手机上市前,Google就已经推出一套解决方案,不仅解决了不同的像素分辨率为题,还解决了像素密度问题,像素密度指的是每英寸像素数量。Android结构工程师黛安·哈克本(Diane Hackborn)在Google+中描述了公司理念:
我们解决显示屏分辨率问题的动机来源于Palm/PalmSource体验。Palm设备传统上采用160x160显示屏。最初,索尼推出320x320 显示屏,应用坐标只需扩大一倍即可,软件人员仍能够认为自己是在160x160的显示屏上操作,操作系统通过转换并利用高分辨率显示屏显示更清晰的文本和 绘图。
但后来该策略在遭遇QVGA [320x240]显示屏时出现问题。由于QVGA [320x240]显示屏用于大量设备,其生产成本较低。将书写区域放置在显示屏底部,仍能够获得应用所需的预期空间。但其密度在160x160和 320x320之间,缩放比例为1.5倍时,问题就出现了。
将目标尺寸缩放1.5倍,原来的实线将因实际显示屏分辨率不同而出现不同程度的暗淡斑点。为解决Android面临的显示屏尺寸和分辨率挑战,该操作系统采用密度独立像素(其缩写为dp或dip)方案。
Android针对显示屏分辨率提出的解决方案配合大量布局工具使用。Meridian Apps软件人员尼克·法伦纳(Nick Farina)在博客中称:“一旦软件人员掌握了布局工具,就能够在布局时对肖像/平面设备方向及不同显示屏尺寸进行自动调整。”
Android工程师罗曼·盖伊(Romain Guy)指出:“如果你在应用中标出的按钮为100像素的宽度,该按钮在640x480像素设备中看起来较320x480像素设备中要小得多。现在,如果 你对按钮的宽度标为100dip,该按钮尺寸在两款设备上看起来是一样的。”
从理论上看,Android解决方案适合任何像素密度。为方便起见,Google制定出一些主要计数单位:规定 1ldpi=120dpi,1mdpi=160 dpi,1hdpi=240 dpi,1xhdpi=320 dpi。为推动这一方案,Google力劝软件人员为不同DPI显示屏提供资源,确保其应用在任一款设备上看起来更漂亮。
这就需要编码员和图形设计人员做些先期工作。哈克本说,做好先期工作将保证软件能够很好地适应Galaxy Nexus及其316dpi、1280x720显示屏。
哈克本说:“目前Android及其应用在Galaxy Nexus上运行得相当好。”Android解决方案非常灵活。当然,Google从一开始就将Android定位为一款面向众多制造商的操作系统。苹果iPhone则情况迥异,苹果一直牢牢掌控着iPhone。
软件人员密切关注iOS的每一个像素。iPhone 4问世后,其显示屏分辨率由480x320增长至960x640。大量迹象表明苹果下一代iPad显示屏分辨率将由第一代iPad的1024x768分辨率增长至2048x1536。
相关文章推荐
- Android如何解决显示屏尺寸适配问题
- Android屏幕适配方案-直接填写设计图上的像素尺寸即可完成适配-最大限度解决适配问题。
- android开发如何更好的解决适配不同屏幕大小移动设备的问题
- android 解决百分比布局适配时Textview的字体Textsize比例缩放问题
- 如何解决 Android 软键盘弹出,会把原来的界面挤上去的问题?
- 如何解决Android WebView出现的乱码问题
- Android 如何解决代码中view的setId红线问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android开发中关于如何解决Fragment中弹出键盘会把底部菜单栏顶上去的问题以及返回键的监听问题
- Android 如何解决默认壁纸更改为ImageWallpaper之外的壁纸,在特定的操作下,导致死机的问题。
- 如何解决Eclipse中Android 代码自动补全卡死的问题
- Android权限管理之RxPermission解决Android 6.0 适配问题
- 如何在android设备上insmod自己单独编译的.ko,解决签名问题
- ps中的背景图尺寸与图像尺寸不同时,如何将图像分离出来----------已解决的问题
- Android实战技术: 用Dimension解决多屏幕适配的问题
- Android 适配问题解决
- Android权限管理之RxPermission解决Android 6.0 适配问题
- Android实战技术: 用Dimension解决多屏幕适配的问题
- 如何解决安卓网络主线程异常的问题:Caused by: android.os.NetworkOnMainThreadException [duplicate]
- 如何解决Android WebView出现的乱码问题