我有一个适用于手机的简单应用程序,其结构如下:
现在,当用户在平板电脑或横向模式下使用应用程序时,我想更好地利用未使用的空间。差不多是这样的:
有什么方法可以检查(分辨率或设备类型),我可以
在 onCreate 上将 xml 布局从 phone_layout.xml 切换到 tablet_layout.xml?
或者我应该为此使用片段?
谢谢。
我有一个适用于手机的简单应用程序,其结构如下:
现在,当用户在平板电脑或横向模式下使用应用程序时,我想更好地利用未使用的空间。差不多是这样的:
有什么方法可以检查(分辨率或设备类型),我可以
在 onCreate 上将 xml 布局从 phone_layout.xml 切换到 tablet_layout.xml?
或者我应该为此使用片段?
谢谢。
您可以利用资源桶。
基本上,您必须在两个不同的资源文件夹中创建两个同名的布局文件:
res/layout/your_layout.xml
:这将是您对除下面提到的任何其他设备的默认布局res/layout-sw600dp/your_layout.xml
:此布局将由最小宽度为 600 dp 的设备选择(平板电脑属于此类)只要您将布局命名为相同,该系统就足够智能,可以根据正在运行的设备选择正确的布局。
参考 Android 文档:http: //developer.android.com/training/basics/supporting-devices/screens.html
您可以使用相同的名称设置多个布局,但在指示屏幕分辨率的不同文件夹下(它可用于其他配置,如:语言、屏幕方向和 dp)
MyProject/
res/
layout/
main.xml
layout-large/
main.xml
PS这种方法可以用于drawables
MyProject/
res/
drawable-xhdpi/
awesomeimage.png
drawable-hdpi/
awesomeimage.png
drawable-mdpi/
awesomeimage.png
drawable-ldpi/
awesomeimage.png
对于平板电脑,在其中创建一个文件夹/res/layout-sw600dp/activity_layout.xml
用于垂直查看,并在其中创建一个文件夹/res/layout-sw600dp-land/activity_layout.xml
用于水平查看。
对于手机来说,除了 中的普通文件夹外/res/layout/activity_layout.xml
,再添加一个文件夹/res/layout-land/
进行横向查看。
对于activity_layout.xml
创建的文件夹中的各个图像/drawables- sw600dp
,/drawable-sw600dp-land
用于横向显示。