Android studio通过线性布局完成一个简单的个人信息的用户界面布局设计
线性布局需要考虑的就是水平还是垂直,通过 LinearLayout标签的一个必要属性android:orientation来控制=horizontal就是水平,=vertical就是垂直。
线性布局可以嵌套,可以在一个垂直的线性布局里嵌套水平线性布局,也可以在水平布局里嵌套垂直线性布局。
首先,我们来看一个图,我用excel表格来做一个演示:
这里有四个不同颜色的单元格,我们假设每种单元格是一个Android 控件,我们来看一下他们的关系,看似他们是分开的,毫无关系。但我们发现,如果把控件1、控件2、控件3看作一个整体,这个整体和控件4的关系就是线性垂直。如下图:
接下来我们又发现,如果把控件1和控件2看作一个整体,这个整体和控件3是线性垂直关系。如下图所示
好啦,最后还剩下控件1和控件2,很显然,他们俩个位于一个线性垂直关系里面。
最后总结一下,这四个控件最外层是一个垂直(vertical)线性布局,然后里面嵌套一个由控件1、2、3组成的水平(horizontal)线性布局,然后里面嵌套一个由控件1、2组成的垂直(vertical)线性布局。
明白了这个道理之后,我们来看我们要实现的这个图,姓名和其后面的文本框可以看作是一个水平线性布局,同样,年龄及其之后的文本框,性别和其之后的文本框也是如此,这样这就是三个水平的线性布局。接下来我们把这个三个分别看成个体,那么这三个的组合就是一个垂直布局,接下来再看照片,之前的组合和照片就是一个水平布局。接下来我们把这看成一个组合,这个组合和下面的两个又构成一个垂直线性布局。
用代码来看一下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 水平线性排列 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="姓名:" />
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="XX"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="年龄:" />
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="20"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="性别:" />
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="女"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="100dp"
android:layout_height="150dp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="研究方向:" />
<TextView
android:layout_width="250dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="移动计算"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="联系电话:" />
<TextView
android:layout_width="250dp"
android:layout_height="50dp"
android:textSize="20sp"
android:text="XXXX"/>
</LinearLayout>
</LinearLayout>
效果图如下: