我认为阅读文档很有好处,它们详细解释了
支持多屏幕的每一个方面。但是大家都会困惑
如何和
何时使用它,我说得对吗?在困惑之前,可以下载官方示例代码
iosched,试着理解一下他们如何管理支持屏幕的内容。第一次理解那段代码可能很难,但我们是开发人员,所以...例如:我有一台安卓设备,支持API 10-22和所有从Galaxy star s5280(非常小的屏幕)到10英寸平板电脑Nexus 10的所有设备。如何管理资源?
POINT-1 从布局开始
创建两个布局如下所示
res/layout/my_layout.xml
res/layout-sw600dp/my_layout.xml // 7 inch tablets
以下是
可选项,仅在需要非常小或大的布局时使用。
res/layout-small/my_layout.xml
res/layout-sw720dp/my_layout.xml // 10 inch tablets
POINT-2 您也可以使用尺寸来管理布局
res/values/dimens.xml
res/values-sw600dp/dimens.xml // 7 inch tablets
res/values-sw720dp/dimens.xml // 10 inch tablets
POINT-3 添加不同的可绘制对象
res/drawable-mdpi/graphic.png
res/drawable-hdpi/graphic.png
res/drawable-xhdpi/graphic.png
res/drawable-xxhdpi/graphic.png
根据我的经验,每个人都使用POINT 1和2的组合(根据需求),而POINT-3是普适的:)。阅读最佳实践。
最后别忘了在Android清单文件中使用<supports-screens>
和<compatible-screens>
标签。
编辑:
我能使用values-large和values-xlarge吗?我对values-large和values-sw600dp感到困惑
注意:从Android 3.2(API级别13)开始,这些大小组已被弃用,改为基于可用屏幕宽度管理屏幕大小的新技术。如果您正在开发适用于Android 3.2及更高版本的应用程序,请参阅声明Android 3.2平板电脑布局以获取更多信息。
首先阅读上述指南,根据指南,我们不必使用例如large或xlarge
,只需使用宽度为600dp
。这适用于>= 3.2 Android操作系统。在每个设备上都可以正常工作,但您可能会在GALAXY系列设备(如GALAXY TAB-2,GRAND)中遇到问题,因为它们具有旧的API,此时可以使用values-large和values-xlarge。这是设备特定的问题,仅在必要时才执行。
还有一点需要注意,就是按照需要创建多个文件来创建上述布局,例如我们在布局中有一个listview
,那么只需创建一个文件,其在所有设备(包括平板电脑)上都相同。 通过这种方式,您还可以管理应用程序的大小。
线性布局、相对布局和框架布局能够让您的生活更加轻松。