android phone 和平板电脑布局

android phone and tablet layout

我有一个适用于手机的简单应用,其结构如下:

现在,我想在用户
时更好地利用未使用的 space 在平板电脑或横向模式下使用该应用程序。差不多像这样:

有什么方法可以检查(分辨率或设备类型)
在 onCreate?

上将 xml 布局从 phone_layout.xml 切换到 tablet_layout.xml

或者我应该为此使用片段?
谢谢

您可以使用 resource buckets

基本上你必须在两个不同的资源文件夹中创建两个同名的布局文件:

  • 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

P.S。这种方法可用于可绘制对象

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 中创建一个文件夹 用于水平查看。

对于 phone,除了 /res/layout/activity_layout.xml 中的普通文件夹外,添加另一个文件夹 /res/layout-land/ 用于水平查看。

activity_layout.xml 中的各个图像创建文件夹 /drawables- sw600dp/drawable-sw600dp-land 用于横向显示。

https://github.com/ciromelody/MyTabletPhone