应用程序的资源,如图片和字符串等应该始终放到代码的外部,这样可以独立的维护它们。把资源放到外部还能够提供支持特殊设备配置的可选资源,如不同的语言或屏幕尺寸。随着Android支持的带有不同配置的设备越来越多,这种代码与资源分离的特性也日益变的重要。为了提供不同配置的兼容性,必须把资源组织到工程的res/目录中,使用各种子目录把不同类型的配置资源分组。
对于任意类型的资源,都可以给应用程序指定默认资源和多种可选资源:
1.默认资源是那些设备配置无关的资源,或者是没有与当前配置匹配的可选资源时所使用的资源。
2.可选资源是那些用来给特定设备配置所使用的资源。对于特殊的配置要指定一个资源组,并给目录名追加一个适当的配置限定符。
例如,默认的UI布局保存在res/layout/目录中,可以指定一个横向屏幕使用的不同布局,把它保存在res/layout-land/目录中。通过把设备的当前配置与资源目录的匹配,Android能够自动的应用合适的资源。
图1演示了在没有可利用的可选资源时,系统是如何把相同的布局应用给两种不同的设备的。图2演示了在给大屏设备添加了一个可选的布局资源时,应用程序的效果。
图1.使用默认布局的两种不同设备(没有提供可选布局资源)
图2.两种不同的设备,针对不同的屏幕尺寸使用不同的布局资源。
本文阐述了将应用程序的资源(如图片和字符串)置于代码外部的重要性,以支持不同设备配置的可选资源。通过在Android工程的res目录中组织资源,开发者能够为不同设备配置提供兼容性,包括默认资源与特定配置下的可选资源。文中通过实例展示了如何在不同设备上应用布局资源,以实现针对不同屏幕尺寸的优化。
4219

被折叠的 条评论
为什么被折叠?



