【问题标题】:Different screen sizes? (landscape)不同的屏幕尺寸? (景观)
【发布时间】:2015-12-03 15:10:17
【问题描述】:

我想为原始布局的每个尺寸制作单独的横向布局

我有activity_main.xml。我已经对其进行了调整以适应多种屏幕尺寸:

现在,我想为每个不同的屏幕尺寸创建一个横向布局。 android 文档和许多(很多!)堆栈溢出页面建议做这样的事情来创建一个新的横向布局:

但是在这样做之后,我为 所有 activity_main.xml 的创建了一个横向布局我需要一个单独的横向布局,用于大 activity_main、小 activity_main、xlarge activity_main ,和正常的activity_main。通过执行到处描述的方法,我最终得到了这个:

因为这涵盖了所有activity_main.xml,所以我没有选择“创建景观变化on my other versions of myactivity_main”。

那么,我如何为 每个 已经制作了 activity_main 的变体的单独的横向布局?

非常感谢,

鲁基尔

【问题讨论】:

  • 您是否尝试在项目结构中将其可视化。我可以在图像中看到您现在处于 android 结构中。您可以在项目上方找到下拉菜单并从中选择项目。
  • 是的,我有。这是项目结构中的屏幕截图:i.snag.gy/L7VNO.jpg
  • 是的,现在它有不同的文件夹了。所以现在您可以在这里定义您的新文件夹或重命名您当前的布局文件夹以满足您的需要。
  • @KDeogharkar 添加的新文件夹的名称应该是什么?
  • 根据文档,您只有 2 个选择。小屏幕和大屏幕。布局土地,布局大土地 -- developer.android.com/training/basics/supporting-devices/…

标签: java android string android-layout android-activity


【解决方案1】:

按照图片中给出的这些步骤

选择我在图像中突出显示的项目而不是 Android, 并从 Projectname-> app->src->res-> 展开您的文件,然后查看分离所有文件夹

现在 -> 右键单击​​ res-> new-> 目录-> layout-land-hdpi

像这样创建

布局-土地-hdpi

布局-土地-ldpi

布局-土地-mdpi

布局-小土地-ldpi

【讨论】:

  • 非常感谢幸存者!我喜欢过。感谢您提供的详细信息,我相信这将对遇到此问题的其他人非常有帮助。很棒的屏幕截图!
  • 除了我还有一个问题...如果我已经有layout,我可以删除layout-normal吗?
  • 布局和布局正常是相似的,如果你删除布局正常而不是布局,这是我的建议
【解决方案2】:

所以,您当前的结构是:

layout
layout-large
layout-normal
layout-small
layout-large

要为每种尺寸指定横向模式的布局,请创建以下文件夹并将特定尺寸的布局放入其中:

layout-land
layout-large-land
layout-normal-land
layout-small-land
layout-large-land

【讨论】:

  • 感谢大博的回答。有什么方法可以在 android studio 中做到这一点而无需手动创建它?例如像按钮一样,它只是为不同的屏幕制作另一个相同的布局?
  • 我不知道。我还建议手动创建它们,因为这样你就知道你做了什么,不需要假设按钮为你做了什么。只需复制所有正常布局文件夹,添加“-land”并调整它们以适应横向,就是这样。
  • 我应该在包视图中制作它吗?
  • 我推荐使用项目视图,它会显示所有目录和文件。
  • 非常感谢老兄。我已将您标记为最佳答案并喜欢您的帖子。谢谢!
【解决方案3】:

右键单击 res 然后选择“新建”->“Android 资源目录”。将其命名为“layout-large”,类型为“layout”。将“layout”的“activity_main”(在步骤 3 中)复制到剪贴板并将其粘贴到“layout-large”中。 对不同的屏幕尺寸执行相同的操作。

Android 资源目录名称如下:

layout,
layout-land,
layout-large,
layout-large-land,
layout-sw600dp,
layout-sw600dp-land,
layout-sw720dp,
layout-sw720dp-land 

等等

【讨论】:

  • 这将如何使它成为景观......?
  • -land 定义了 gradle 和 android 操作系统识别的 android 应用程序的横向方向。试一试,你就能找到答案
  • 将修改后的横向布局放在那里,当手机处于横向时它会显示出来。
  • 我已经有横向布局了,正如我的屏幕截图所示:i.stack.imgur.com/iqrZu.png 我想为我的原始布局的每个尺寸制作一个单独的横向布局
  • 是的,我看到屏幕截图为每个分辨率创建一个单独的 Android 资源目录,并在其中添加你的 lanscape xml,你的问题就解决了
【解决方案4】:

您将找到有关 layout support 的所有信息。查看Using configuration qualifiers

【讨论】:

  • 非常感谢!我喜欢过。感谢您提供的详细信息,我相信这对遇到此问题的其他人会很有帮助。
  • 是的,它不仅包含有关布局的所有详细信息,还包含有关可绘制文件夹的所有详细信息,因此在设计具有兼容性的 android 布局时非常有用。
  • 除了我还有一个问题...如果我已经有layout-normal,我可以删除layout吗?
【解决方案5】:

Android 支持数百种具有多种不同屏幕的设备类型 尺寸,从小型手机到大型电视机。因此,它是 重要的是你设计你的应用程序是兼容所有 屏幕尺寸,以便尽可能多的用户使用。

但兼容不同的设备类型是不够的。每个 屏幕尺寸为用户提供了不同的可能性和挑战 互动,所以为了真正满足和打动你的用户,你的 应用程序必须超越仅仅支持多个屏幕:它必须 优化每个屏幕配置的用户体验。

请阅读 SO 答案

  1. Android layout folders

  2. Creating landscape layouts

  3. Android Landscape Layout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2015-02-28
    • 2015-11-18
    • 1970-01-01
    • 2012-05-23
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多