简体   繁体   English

不同屏幕尺寸的 Android 布局

[英]Android layouts for different screen sizes

I am struggling for layouts for an Android app.我正在为 Android 应用程序的布局而苦苦挣扎。 I have defined different layouts for different screen sizes and the current layout directory structure is something like this:我为不同的屏幕尺寸定义了不同的布局,当前的布局目录结构是这样的:

  • layout布局
  • layout-land布局土地
  • layout-small布局小
  • layout-xlarge布局-xlarge
  • layout-xlarge-land布局-xlarge-land

Problem问题

The main layout directory files are being displayed for 3.7 to 7.0 which is a very broad range.主要布局目录文件显示为3.7 to 7.0 ,这是一个非常广泛的范围。 And text overlap on small screens and if I adjust on small;文本在小屏幕上重叠,如果我在小屏幕上进行调整; it becomes very tiny on the large screen.它在大屏幕上变得非常小。

According to me, the layout small files should be rendered for smaller screens but those files are only rendered for android wear devices.据我说,布局小文件应该为较小的屏幕呈现,但这些文件只为安卓穿戴设备呈现。

layout-xlarge seems to work for Nexus 9 to Nexus 10 layout-xlarge 似乎适用于Nexus 9 to Nexus 10

I want to know, how can I define the different layout for 3.7-5.0 and 5.0-7.0 screen sizes.我想知道,如何为3.7-5.05.0-7.0屏幕尺寸定义不同的布局。

The answer is already given by user5594218 but looks like you are still unclear. user5594218已经给出了答案,但看起来您仍然不清楚。 (maybe you are beginner) (也许你是初学者)

So, here is the step by step guideline所以,这是分步指南

Solution 1: (short and simple)解决方案1:(简短而简单)

  1. Navigate to app > src > main > res导航app > src > main > res

  2. Duplicate layout directory by copying and pasting通过复制和粘贴复制布局目录

  3. Rename duplicated Directories eg layout-sw300dp重命名重复的目录,例如layout-sw300dp

Solution 2: (bit lengthy)解决方案2:(有点冗长)

  1. Create new resource directory: res > New > Android resource directory新建资源目录: res > New > Android resource directory

新建资源目录

  1. Select Resource Type as layout选择Resource Type作为layout

  2. Add sw<N>dp in Directory name eg layout-sw300dp and Hit OK在目录名称中添加sw<N>dp例如layout-sw300dp并点击OK

在此处输入图片说明

  1. Navigate to app > src > main > res导航到app > src > main > res

  2. Copy layouts XML file inside new directory在新目录中复制布局 XML 文件

    //repeat process for other qualifiers

List of Qualifiers to support all screens:支持所有屏幕的限定符列表:

  • layout-sw300dp布局-sw300dp
  • layout-sw330dp布局-sw330dp
  • layout-sw480dp布局-sw480dp
  • layout-sw600dp布局-sw600dp
  • layout-sw720dp布局-sw720dp

Testing:测试:

This is how it gonna look like, if you did it right.如果你做对了,这就是它的样子。 在此处输入图片说明

For more detail and examples, check: Android Application Development All-in-One For Dummies有关更多详细信息和示例,请查看: Android Application Development All-in-One For Dummies

Create folders like the following创建如下文件夹

layout-sw300dp
layout-sw330dp
layout-sw480dp 
layout-sw600dp 
layout-sw720dp 

Create also values-folders like还创建值文件夹,如

values-sw300dp 
values-sw330dp 
values-sw480dp
values-sw600dp
values-sw720dp

导航应用程序- > res-> 布局并右键单击然后新建-> 布局资源文件正确写入文件名并从可用限定符中选择您想要的大小。

Dear you don't need to declare layout for various screen.亲爱的,您不需要为各种屏幕声明布局。 just make single layout for every screen and don't fix the width and height of layout.只需为每个屏幕制作单一布局,不要固定布局的宽度和高度。 you have to keep height either match parent and wrap content as well as for width.您必须保持高度与父级和包装内容以及宽度相匹配。

您应该在 layout-height/layout-width/textsize 中尝试 dp,因为它与屏幕尺寸无关。

尝试使用百分比相对布局。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM