Android版式初学者指南

当Activity处理用户与您的应用程序的交互时,布局决定了应用程序的外观。 在本文中,您将学习布局如何定义用户界面的视觉结构,例如活动或应用程序小部件的UI。

布局

布局文件是一个XML文件,描述了应用程序屏幕的GUI。 对于此示例,我们将创建一个线性布局,该布局用于并排显示GUI组件。 这些组件可以垂直或水平显示。 水平显示时,它们显示在一行中。 垂直显示时,它们显示在单列中。

这是线性布局的示例。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="vertical"
    tools:context="com.tutsplus.code.android.tutsplusupload.MainActivity">

</LinearLayout>

在下面的图像中,您可以查看代码及其在Android设备上的显示方式。

代码如何在Android设备上显示

布局以XML声明开始。 它指定XML版本和编码。

下一行是线性布局的开始标签。 在它里面,您有一行如下所示:

xmlns:android="http://schemas.android.com/apk/res/android"

这指定了XML名称空间,用于为XML文档中的元素和属性提供唯一的名称。 xmlns :android这里描述了Android名称空间。 Google选择了这种命名空间系统,以帮助Android Studio在编译时处理错误。 Android名称空间有助于将官方Android小部件与自定义小部件区分开。 例如,它使您可以区分自定义textview小部件和Android textview小部件。 命名空间的URI为http://schemas.android.com/apk/res/android

下一个名称空间xmlns:tools允许您访问工具属性。 这不是默认的名称空间:您可以在不使用Android应用程序的情况下对其进行构建。 但是,使用它可以帮助您将元数据添加到资源文件中,这有助于在“设计视图”中操作和渲染布局。 引用工具属性提供的元素或属性时,必须添加工具前缀。 稍后我将解释如何在此代码中使用tools属性。

现在,让我们看下一部分。

android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="vertical"

这些属性用于确定布局的宽度和高度。 它们还说明了要使用的填充量以及组件是垂直放置还是水平放置。 在此,选择垂直方向。

宽度和高度

android:layout_widthandroid:layout_height用于指定要用于布局组件的宽度和高度。 您可以使用wrap_contentmatch_parent值来确定组件的宽度和高度。 wrap_content表示布局(或视图)应足够容纳内容。 match_parent表示它应与父布局一样宽。

填充

填充是视图或布局与其边框之间的空间。 当您使用android:padding ,视图或布局所有四个侧面的空间将具有指定的尺寸。 如果要分别控制填充的各个部分,可以使用android:paddingBottomandroid:paddingLeftandroid:paddingRightandroid:paddingTop 。 请注意,这些值在“ dp”(与密度无关的像素)中指定。 这些即将更多!

保证金

在将填充应用于布局或视图及其边框(在组件内)时,将边距应用于布局或视图边界以及组件外部的其他周围组件。 您可以使用android:layout_margin一次指定所有边距,也可以使用android:layout_marginBottomandroid:layout_marginLeftandroid:layout_marginRightandroid:layout_marginTop分别控制填充的各个部分。 这些也在dp中指定。

什么是dp

与密度无关的像素,简称dp,是基于屏幕物理密度的抽象单位。 定义UI布局时,使用与密度无关的像素。 它们用于以密度无关的方式表示布局或位置的尺寸。 您可以在此处阅读有关Android中密度独立性的更多信息

语境

默认情况下,context属性用于声明与布局关联的活动。 在这里,您可以看到示例布局与MainActivity相关联。

tools:context="com.tutsplus.code.android.tutsplusupload.MainActivity"

您也可以将其写成较短的形式:

tools:context=".MainActivity"

仅在“设计视图”中工作时才使用此选项,因为布局可以与多个活动相关联。

子组件

布局包含子组件。 实际上,这就是它们的全部目的:组织和显示其他组件。

让我们向线性布局添加一些组件-从按钮视图开始。

<Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        BeerAdviser
        android:text="Button" />

我们还将添加一个文本视图,该文本视图与按钮视图具有非常相似的属性。

<TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is a text view" />

我们已经介绍了android:layout_heightandroid:layout_width ,所以现在让我们看看其他的。

组件编号

android:id属性用于为组件提供一个标识名称。 这使您可以使用findViewById()方法从活动的Java代码内访问组件。

组件文字

android:text属性用于告知Android文本组件应显示什么。 在按钮视图的情况下,将显示文本按钮。

到目前为止,让我们运行代码,看看它是什么样。

Android设备在屏幕上显示一个按钮

重新封装,第一个元素必须是您将要使用的布局。 这是LinearLayout 。 指定的方向告诉Android在单个垂直列中显示布局中的组件。 <Button>元素是将要显示的第一个元素。 它会占用父级的宽度,而其高度将取决于其文本内容。

第二个元素是一个文本视图,该视图将显示在按钮下方。 高度和宽度都将限制为内容的高度和宽度。

字符串资源

在上面的示例中,我们使用android:text="This is a text view"对文本视图的文本进行了硬编码。 当您刚开始时这很好,但这不是最好的方法。 假设您创建了一款在Google Play商店中广受欢迎的应用,并且您不想将自己限制在一个国家或地区。 如果您对布局文件中的所有文本进行了硬编码,那么将很难使您的应用程序支持不同的语言。 那么最好的方法是什么?

最好的方法涉及将文本值放在字符串资源文件: strings.xml中 。 这使您的应用程序的国际化变得容易。 由于只需要编辑一个文件,因此可以更轻松地对应用程序进行全局更改。

strings.xml文件位于app / src / main / res / values文件夹中。 当您打开它时,它应该具有这样的结构。

<resources>
        <string name="app_name">Tutsplus Upload</string>
    </resources>

在这里,您有一个名为app_name字符串资源,其值为Tutsplus Upload

您可以使用相同的结构添加其他字符串资源。 对于布局中的按钮和文本,结构可以如下所示。

<resources>
        <string name="app_name">Tutsplus Upload</string>
        <string name="main_button">Button</string>
        <string name="first_text">This is a text!</string>
    </resources>

要在布局中使用这些字符串资源,必须使用各自的资源更新两个视图的文本部分。

android:text="@string/main_button"
    android:text="@string/first_text"

@string告诉Android在字符串资源文件中查找文本值。 之后是资源名称。 Android将查找与该名称对应的资源的值,并将其用于您的组件。

总结一下,这是您的布局外观:

Android设备上的最终代码和布局

结论

在本文中,您学习了一些使用布局的基础知识。 在构建更复杂的应用程序时,您将看到所有部分如何组合在一起。 在遵循了这篇文章之后,您应该能够理解如何使用线性布局,文本和按钮视图以及字符串资源。

翻译自: https://code.tutsplus.com/tutorials/beginners-guide-to-android-layout--cms-29984

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值