【ALearning】第四章 Android Layout组件布局(二)

前面我们分别介绍和学习了LinearLayout(线性布局)、FrameLayout(单帧布局)和AbsoluteLayout(绝对布局)。这次我们要进行RelativeLayout(相对布局)和TableLayout(表格布局)的学习。这部分是很重要的知识点。RelativeLayout是开发过程中强烈建议使用的,而TableLayout是满足一些特定需求时(常见表格显示,但不局限于此)需要使用。

【博客专栏:http://blog.csdn.net/column/details/alearning.html

RelativeLayout(相对布局)

前面介绍的LinearLayout(现象布局)与即将介绍的RelativeLayout(相对布局),是实际开发中较常使用的,也是开发过程中强烈建议的使用。下面我们来开始了解RelativeLayout布局。

相对布局,顾名思义就是以“相对”位置/对齐为基础的布局方式。

本例拓展的属性配置是:

  • android:id   指定该控件唯一标志的ID值;
  • android:layout_above    指定该控件的底部置于给定ID的控件之上;
  • android:layout_below    指定该控件的底部置于给定ID的控件之下;
  • android:layout_toLeftOf  指定该控件的右边缘与给定ID的控件左边缘对齐;
  • android:layout_toRightOf 指定该控件的左边缘与给定ID的控件右边缘对齐;
  • android:layout_alignBaseline 指定该控件的baseline与给定ID的baseline对齐;
  • android:layout_alignTop     指定该控件的顶部边缘与给定ID的顶部边缘对齐;
  • android:layout_alignBottom  指定该控件的底部边缘与给定ID的底部边缘对齐;
  • android:layout_alignLeft     指定该控件的左边缘与给定ID的左边缘对齐;
  • android:layout_alignRight    指定该控件的右边缘与给定ID的右边缘对齐;
  • android:layout_alignParentTop指定该控件的顶部与其父控件的顶部对齐;
  • android:layout_alignParentBottom 指定该控件的底部与其父控件的底部对齐;
  • android:layout_alignParentLeft    指定该控件的左部与其父控件的左部对齐;
  • android:layout_alignParentRight   指定该控件的右部与其父控件的右部对齐;

注:相对布局的属相设置较多,在实际的开发中需要不断的补充与拓展。

【布局文件】activity_relativelayout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <!-- 该控件位于界面中部 -->
    <TextView
        android:id="@+id/red"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_centerInParent="true"
        android:background="#CD2E57"
        android:gravity="center"
        android:text="Red" />

    <!-- 该控件的左边缘与给定id为red控件的左边缘对齐 -->
    <TextView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_alignLeft="@id/red"
        android:background="#64DB99"
        android:gravity="center"
        android:text="Green" />

    <!-- 该控件位于界面底部 同时 位于给定id为red控件的下边/右边(即右下位置) -->
    <TextView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_below="@id/red"
        android:layout_centerInParent="true"
        android:layout_marginTop="20dp"
        android:layout_toRightOf="@id/red"
        android:background="#FFFA78"
        android:gravity="center"
        android:text="Yellow" />

    <!-- 该控件位于给定id为red控件的左边 -->
    <TextView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_toLeftOf="@id/red"
        android:background="#148CFF"
        android:gravity="center"
        android:text="Blue" />
</RelativeLayout>

效果截图:

TableLayout(表格布局)

TableLayout表格布局,表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow(类似于Html中Table里的tr),TableRow里面可以具体定义每一个元素,例如TextView,设定他的对齐方式android:gravity="center"。

本例拓展的属性配置是:

  • android:stretchColumns    指定可伸展的列。该列可以向行方向伸展,最多可占据一整行。
  • android:shrinkColumns     指定可收缩的列。当该列子控件的内容太多,已经挤满所在行,那么该子控件的内容将往列方向显示。
  • android:collapseColumns  指定要隐藏的列。

示例:

android:stretchColumns="0"           第0列可伸展

android:shrinkColumns="1,2"         第1,2列皆可收缩

android:collapseColumns="*"         隐藏所有行

注:列可以同时具备stretchColumns及shrinkColumns属性,若此,那么当该列的内容N多时,将“多行”显示其内容。(这里不是真正的多行,而是系统根据需要自动调节该行的layout_height)。

  • android:layout_column    指定该单元格在第几列显示
  • android:layout_span      指定该单元格占据的列数(未指定时,为1)

示例:

android:layout_column="1"    该控件显示在第1列

android:layout_span="2"        该控件占据2列

说明:一个控件也可以同时具备这两个特性。

【布局文件】activity_relativelayout.xml。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="0,1,2" >

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:background="#6495ED"
            android:padding="2dp"
            android:text="文本1-1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:background="#B0C4DE"
            android:padding="2dp"
            android:text="文本1-2" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:background="#32CD32"
            android:padding="2dp"
            android:text="文本1-3" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:background="#FFD700"
            android:padding="2dp"
            android:text="文本1-4" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_height="40dp"
            android:layout_column="1"
            android:layout_span="2"
            android:background="#FF8C00"
            android:text="跨列文本2-2,3跨2到3列" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_height="40dp"
            android:layout_column="0"
            android:layout_span="2"
            android:background="#FF69B4"
            android:text="跨列文本3-1,2跨1到2列" />
    </TableRow>

    <!--  -->
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:collapseColumns="2"
        android:shrinkColumns="1"
        android:stretchColumns="0" >

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:background="#696969"
                android:textColor="@android:color/white"
                android:text="行方向伸展文本,可自行增长文本查看效果!" />

            <TextView
                android:textColor="@android:color/white"
                android:background="#800000"
                android:text="列方向伸展文本,可自行增长文本查看效果!" />
        </TableRow>
    </TableLayout>

</TableLayout>

效果截图:

到此,基于XML配置的五种常用的布局,已经全部讲解完成。但是布局的设计方式不止一种,还有一种是基于Java(Android)开发语言的设置。这部分,将会在接下来的不断的学习中了解与使用。敬请各位看官的继续关注!

参考资料

4、http://blog.sina.com.cn/s/blog_63c66eb60100u29p.html

5、http://blog.csdn.net/beyond0525/article/details/8841139

【ALearning】第四章 Android Layout组件布局(二),布布扣,bubuko.com

时间: 2024-12-24 21:39:08

【ALearning】第四章 Android Layout组件布局(二)的相关文章

【ALearning】第四章 Android Layout组件布局(一)

在本章中,我们将Android学习组件布局.在前面的章节,我们也开始使用LinearLayout布局.然后我们在布局文件更加具体的学习和理解,会. Android的界面是有布局和组件协同完毕的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件依照布局的要求依次排列.就组成了用户所看见的界面. Android的五大布局各自是LinearLayout(线性布局).FrameLayout(单帧布局).RelativeLayout(相对布局).AbsoluteLayout(绝对布局)和Table

Android学习笔记—第四章 Android开发组件2

第四章 Android开发组件2 列表类组件 (1)ListView组件:以垂直列表的形式列出需要显示的列表项 相关属性: a. android:divider  用于为列表视图设置分隔条,可以用颜色或者图片资源 b. android:dividerHeight  设置分隔条的高度 c. android:entries  通过数组资源为ListView指定列表项 d. android:footerDividersEnabled  设置是否在footerView之前绘制分隔条,默认为true. e

【ALearning】第五章 Android相关组件介绍(二)Service

Service是Android中的四大组件之一,所以在Android开发过程中起到非常重要的作用.下面我们来看一下官方对Service的定义. A Service is an application component thatcan perform long-running operations in the background and does not provide auser interface. Another application component can start a se

【ALearning】第五章 Android相关组件介绍(一)Activity

Android应用程序由一些零散的有联系的组件组成,通过一个工程manifest绑定在一起.在manifest中,描述了每一个组件以及组件的作用,其中有6个组件,它们是Android应用程序的基石. Activities(活动) Service(服务) Content Provider(内容提供者) Intent(意图) Broadcast Receiver(广播接收器) Notification(通知) 在这里我们提到了组件(Component)的概念,组件(Component)是对数据和方法

【Android的从零单排开发日记】之入门篇(四)——Android四大组件之Activity

在Android中,无论是开发者还是用户,接触最多的就算是Activity.它是Android中最复杂.最核心的组件.Activity组件是负责与用户进行交互的组件,它的设计理念在很多方面都和Web页面类似.当然,这种相似性主要体现在设计思想上.在具体实现方面,Android的Activity组件有自己的设计规范,同时,它能够更简便地使用线程.文件数据等本地资源. 一.Activity 的生命周期 Activity 的生命周期是被以下的函数控制的. 1 public class Activity

第四章 Android开发三大基石—Activity、Service和Handler(1)

第四章 Android开发三大基石-Activity.Service和Handler 学习Android开发,首先就不得不学习Activity和Service这两个组件.Activity是有界面的程序,几乎承载着用户对应用程序的所有操作.而Service是没有界面的程序,它是所谓的服务,也叫后台程序.掌握好它们,是我们学习Android开发必不可少的环节.Handler是Android开发中最常用的消息机制,几乎所有应用程序都会使用Handler传递消息.可以说,想要学习Android应用开发,

【ALearning】第二章 Android工程相关知识介绍

本章主要初步介绍Android工程开发环境的搭建,以对Android项目整体的认识与了解.本章包括Android开发环境搭建.第一个Android项目Hello World与Android项目的文件目录结构介绍. Android开发环境搭建 Android开发环境的搭建方式有两种,分别是Eclipse/MyEclipse+ADT+Android SDK和Android Developer Tools.前者方式的开发环境搭建,参看[http://blog.sina.com.cn/s/blog_4e

Android学习笔记—第二章 Android四大组件

第二章 Android四大组件 Activity(活动窗口): Android程序中最基本的模块,为用户操作而展示的可视化用户界面.一个Android应用程序可以只有一个Activity,也可以包含多个Activity,数量及每个Activity的作用取决于应用程序及其设计. (1)Activity的生命周期 创建→运行   onCreate   onStart   onResume 运行→销毁   onPause    onStop    onDestory 运行→停止(不可见  不可操作)

java-第十四章-代参的方法(二)-实现MyShopping系统的添加会员功能

 package com.wxws.sms; public class Customer {  int No;  int integarl; } package com.wxws.sms; public class Customers {  Customer[] customers = new Customer[100];  public void add(Customer cust){   for (int i = 0; i <customers.length; i++) {    if (c