Android 用户界面布局

Android 用户界面布局

简介

安卓系统中的UI布局是用来定义用户界面的,当移动应用程序被使用时,它将被显示给用户。它通常用于显示用户在屏幕上看到的东西。每个安卓应用都由一个或多个UI布局组成。在安卓应用中创建的每个活动都由不同类型的UI布局组成。UI布局通常被用作一个父组件,它持有应用程序中的所有小部件,无论是文本视图、图像视图还是其他。Android中的布局也被称为视图组,它容纳了其中的所有视图。在这篇文章中,我们将看一下Android中不同类型的UI布局。

Android中不同类型的UI布局。

  • Constraint Layout

  • RelativeLayout

  • LinearLayout

  • FrameLayout

  • TableLayout

  • 绝对布局

我们将创建一个简单的项目来演示每个布局。

Constraint Layout

约束布局是任何android应用程序中最常用的UI布局之一。它被用来在视图组中以灵活的方式定位和调整小部件的大小。我们可以为这个视图组中的每个子项指定相对于其他视图的布局约束位置。

Constraint Layout的例子

导航到aactivity_main.xml并添加以下代码。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <TextView
      android:id="@+id/textView"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Layouts in Android"
      android:textAlignment="center"
      android:textColor="#FF000000"
      android:textSize="20sp"
      android:textStyle="bold"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintTop_toTopOf="parent" />

   <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:id="@+id/idTVSubHeading"
      android:text="Constraint Layout in Android"
      android:textAlignment="center"
      android:textColor="#FF000000"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintTop_toBottomOf="@id/textView" />
</androidx.constraintlayout.widget.ConstraintLayout>

Constraint Layout的输出

安卓用户界面布局

RelativeLayout

RelativeLayout是一个布局,在这个视图组中存在的部件的位置可以被描述为相互之间或与父级的关系。在这种布局的帮助下,我们可以通过特定部件的ID来调整元素之间的关系。

RelativeLayout的例子

导航到aactivity_main.xml并添加以下代码。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <TextView
      android:id="@+id/idTVHeading"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:text="Layouts in Android"
      android:textAlignment="center"
      android:textColor="#FF000000"
      android:textSize="20sp"
      android:textStyle="bold" />

   <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_below="@id/idTVHeading"
      android:text="Relative Layout Example"
      android:textAlignment="center"
      android:textColor="#FF000000" />

</RelativeLayout>

相对布局的输出

安卓用户界面布局

LinearLayout

LinearLayout是一种布局类型,在这种布局中,我们可以将显示在该视图中的部件或视图水平地安排在单一行中,或垂直地安排在单一列中。为了指定LinearLayout的方向,无论我们是水平还是垂直显示,我们都可以在LinearLayout中使用方向参数来设置它。

LinearLayout的例子

导航到aactivity_main.xml并添加以下代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:gravity="center"
   android:orientation="vertical"
   tools:context=".MainActivity">

   <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Layouts in Android"
      android:textAlignment="center"
      android:textColor="#FF000000"
      android:textSize="20sp"
      android:textStyle="bold" />

   <TextView
      android:id="@+id/idTVSubHeading"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Vertical Linear Layout in Android"
      android:textAlignment="center"
      android:textColor="#FF000000" />

</LinearLayout>

LinearLayout的输出

安卓用户界面布局

FrameLayout

FrameLayout是一种布局类型,它被设计用来封锁屏幕的特定区域以显示单一项目。在大多数情况下,FrameLayout被用来容纳一个单一的子视图。我们可以在FrameLayout中使用多个视图,我们可以通过给每个在FrameLayout中显示的部件分配重力来控制它们在FrameLayout中的位置。

FrameLayout的例子

导航到aactivity_main.xml并添加以下代码。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   tools:context=".MainActivity">

   <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Layouts in Android"
      android:textAlignment="center"
      android:textColor="#FF000000"
      android:textSize="20sp"
      android:textStyle="bold" />

   <TextView
      android:id="@+id/idTVSubHeading"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="30dp"
      android:text="Frame Layout in Android"
      android:textAlignment="center"
      android:textColor="#FF000000" />

</FrameLayout>

FrameLayout的输出

安卓用户界面布局

TableLayout

TableLayout的名字本身就表明,这个布局是用来将其中的部件以表格的形式对齐。这个视图组由表行组成,每个表行都定义了可以包含任何数量的单元格。同样地,TableLayout也由表列组成,每个表列都定义了可以包含任意数量的列。TableLayout的列宽是由该列中最宽的单元格定义的。

TableLayout的例子

导航到aactivity_main.xml并添加以下代码。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   tools:context=".MainActivity">

   <TableRow
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:gravity="center">

      <TextView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:text="Layouts in Android"
         android:textAlignment="center"
         android:textColor="#FF000000"
         android:textSize="20sp"
         android:textStyle="bold" />

   </TableRow>

   <TableRow
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:gravity="center">

      <TextView
         android:id="@+id/idTVSubHeading"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="Table Layout in Android"
         android:textAlignment="center"
         android:textColor="#FF000000" />

   </TableRow>
</TableLayout>

TableLayout的输出

安卓用户界面布局

总结

在上面的教程中,我们学习了什么是安卓的UI布局,以及安卓应用程序中存在的不同类型的安卓UI布局,我们可以使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程