android Activity线性布局和表格布局实例讲解

实验中只需要编写相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计。

线性布局:
线性布局就是将各种控件按照行或者列依次进行排列。
其中本实验用到的各控件的属性解释如下:
android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。
android:paddingLeft指内边距左的距离,即控件内文字离控件左边边界的距离。其它的类推。
android:gravity指控件内文字相对于控件本身的方向属性,长度为dip,与像素独立的长度。
android:background为控件内文字颜色的背景色,颜色采用rgb时前面需用”#”号.
android:textSize为文本的大小,单位为pt,即镑。
android:id为该控件的id,即在此处可以设置控件的id。
android:layout_width为控件本身的宽度属性,其它的类似。
实验结果显示2行字,分别设置了不同的属性。
效果如下:

xml代码如下:


复制代码 代码如下:

<LinearLayout 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"
    android:orientation="vertical" >
    <!--
        线性布局中
        android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。
        android:paddingLeft指内边距左的距离,即控件内文字离控件左边边界的距离。其它的类推。
        android:gravity指控件内文字相对于控件本身的方向属性,长度为dip,与像素独立的长度。
        android:background为控件内文字颜色的背景色,颜色采用rgb时前面需用”#”号.
        android:textSize为文本的大小,单位为pt,即镑。
        android:id为该控件的id,即在此处可以设置控件的id。
        android:layout_width为控件本身的宽度属性,其它的类似。   
    -->

<TextView
        android:id="@+id/London"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="伦敦奥运"
        android:textSize="20pt"
        android:background="#00ff00"
        android:gravity="center_horizontal"
        android:paddingLeft="10dip"
        android:paddingRight="10dip"
        android:paddingTop="10dip"
        android:paddingBottom="10dip"
        android:layout_weight="1"       
         />
    <TextView
        android:id="@+id/China"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="中国加油!!!"
        android:textSize="35pt"
        android:background="#ff0000"
        android:layout_weight="3"
         />

</LinearLayout>

表格布局:
表格布局有点类似表单的意思,可以在activity中建立多行,每一行又可以设置为多列,所以看起来横竖条理比较清晰,因此叫做表格布局。
表格布局各控件属性与线性布局类似,本实验用到的属性解释如下:
用TableRow来增加一行,然后该行内各列依次并排。
android:padding指的是内边距的4个方向都采用同样的间距。
android:stretchColumns属性表示当该行属性设置为填充屏幕时,指定将哪一列拉伸。
实验结果为显示2行,每一行又有4列。
效果如下:

xml代码如下:


复制代码 代码如下:

<TableLayout 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"
    android:stretchColumns="1"
    >
    <TableRow>
        <TextView
        android:text="国家"
        android:background="#848484"
        android:padding="2dip"
         />
        <TextView
            android:text="金牌"
            android:background="#ff0000"
            android:padding="2dip"
        />
        <TextView
            android:text="银牌"
            android:background="#00ff00"
            android:padding="2dip"
            />
        <TextView
            android:text="铜牌"
            android:background="#0000ff"
            android:padding="2dip"
            />
        </TableRow>
    <TableRow >
         <TextView
        android:text="中国"
        android:background="#848484"
        android:padding="2dip"
         />
        <TextView
            android:text="*"
            android:background="#ff0000"
            android:padding="2dip"
        />
        <TextView
            android:text="**"
            android:background="#00ff00"
            android:padding="2dip"
            />
        <TextView
            android:text="***"
            android:background="#0000ff"
            android:padding="2dip"
            />
    </TableRow>
     <TableRow >
         <TextView
        android:text="美国"
        android:background="#848484"
        android:padding="2dip"
         />
        <TextView
            android:text="*"
            android:background="#ff0000"
            android:padding="2dip"
        />
        <TextView
            android:text="**"
            android:background="#00ff00"
            android:padding="2dip"
            />
        <TextView
            android:text="***"
            android:background="#0000ff"
            android:padding="2dip"
            />
    </TableRow>

</TableLayout>

线性布局和表格布局混合:
混合布局原理类似,只是大的layout中嵌入小layout,且小layout中又可以嵌入不同的layout。
这次实验将上面的2个实验混合起来显示的,即总的布局为垂直方向上的线性布局,上面那个布局内部又为垂直方向的布局,下面那个布局为也是一个线性布局,不过里面嵌入了一个表格布局,所以总共有4个布局。
效果如下:

xml代码如下:


复制代码 代码如下:

<LinearLayout 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"
    android:orientation="vertical">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_weight="1" >   
    <TextView
        android:id="@+id/London"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="伦敦奥运"
        android:textSize="5pt"
        android:background="#00ff00"
        android:gravity="center_horizontal"
        android:padding="10pt"
        android:layout_weight="1"       
         />
    <TextView
        android:id="@+id/China"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="中国加油!!!"
        android:textSize="8pt"
        android:background="#ff00ff"
        android:layout_weight="3"
         />
    </LinearLayout>

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="3">
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:stretchColumns="1"
            >
            <TableRow>
                <TextView
                android:text="国家"
                android:background="#848484"
                android:padding="2dip"
                 />
                <TextView
                    android:text="金牌"
                    android:background="#ff0000"
                    android:padding="2dip"
                />
                <TextView
                    android:text="银牌"
                    android:background="#00ff00"
                    android:padding="2dip"
                    />
                <TextView
                    android:text="铜牌"
                    android:background="#0000ff"
                    android:padding="2dip"
                    />
                </TableRow>
            <TableRow >
                 <TextView
                android:text="中国"
                android:background="#848484"
                android:padding="2dip"
                 />
                <TextView
                    android:text="*"
                    android:background="#ff0000"
                    android:padding="2dip"
                />
                <TextView
                    android:text="**"
                    android:background="#00ff00"
                    android:padding="2dip"
                    />
                <TextView
                    android:text="***"
                    android:background="#0000ff"
                    android:padding="2dip"
                    />
            </TableRow>
             <TableRow >
                 <TextView
                android:text="美国"
                android:background="#848484"
                android:padding="2dip"
                 />
                <TextView
                    android:text="*"
                    android:background="#ff0000"
                    android:padding="2dip"
                />
                <TextView
                    android:text="**"
                    android:background="#00ff00"
                    android:padding="2dip"
                    />
                <TextView
                    android:text="***"
                    android:background="#0000ff"
                    android:padding="2dip"
                    />
            </TableRow>
        </TableLayout>
    </LinearLayout>

</LinearLayout>

实验总结:
通过本次实验对activity的简单布局有了个初步的了解。

作者:tornadomeet

时间: 2013-11-15

Android动态布局小结

android动态布局相比静态布局,动态布局不用再将xml转变了布局代码,提高了一定的效率,当然可以忽略不记.动态布局主要是比较灵活,可以很快的在代码中直接修改布局,并直接使用控件进行业务逻辑开发.但代码量通常比较大,维护没有静态布局方便.不过,作为一个android开发人员,掌握一定的动态布局技巧,有时在工作中也是可以提高一定的代码开发效率. 在动态布局中,要想实现一个布局,一般是先创建五大布局的对象.然后对这些对象进行属性设置,之后再向里面添加子布局或控件. 以RelativeLayout为

Android布局——Preference自定义layout的方法

导语:PreferenceActivity是一个方便设置管理的界面,但是对于界面显示来说比较单调,所以自定义布局就很有必要了.本文举例说明在Preference中自定义layout的方法.笔者是为了在设置中插入@有米v4广告条才研究了一晚上的. 正文:首先PreferenceScreen是一个xml文件于res/xml目录下,不属于layout文件.要插入layout,有两种方法. 1.使用Preference的android:@layout属性 1)xml文件中preference的添加 复制

Android编程动态加载布局实例详解【附demo源码】

本文实例讲述了Android编程动态加载布局的方法.分享给大家供大家参考,具体如下: 由于前段时间项目需要,需要在一个页面上加载根据不同的按钮加载不同的布局页面,当时想到用 tabhot .不过美工提供的界面图完全用不上tabhot ,所以想到了动态加载的方法来解决这一需求.在这里我整理了一下,写了一个 DEMO 希望大家以后少走点弯路. 首先,我们先把界面的框架图画出来,示意图如下: 中间白色部门是一个线性布局文件,我喜欢在画图的时候用不同的颜色将一块布局标示出来,方便查看.布局文件代码如下:

android用java动态增添删除修改布局

XML对开发者来说十分的方便,不仅使用起来简单,而且能够及时调试,修改界面之后马上能看到效果. Java设置布局不具有这个优势.但是java却可以动态对布局进行操作,这是xml所做不到的.笔者认为,新手索要掌握的java动态设置布局主要有两点,一方面是对布局的属性进行修改,另一方面是增添和删除控件. 首先说一下动态设置布局在项目中的应用,拿高德地图举个例子,如下图: 我们可以看到,高德地图的默认界面与点击地图之后的界面是不一样的,上面同样的控件在layout中的位置也不一样,这个用xml便是难以

Android动态加载布局

ListView我们一直都在用,只不过当Adapter中的内容比较多的时候我们有时候没办法去设置一些组件,举个例子: 可以看到京东的故事里面的这样一个布局,这个布局可以说是我目前见到的内容比较多的了,它的每一项都包含头像.姓名.分类.内容.图片.喜欢.评论.分享以及喜欢的头像.分析了一下布局之后我们不难发现,除了喜欢头像这部分,其余的都很好实现. 那么下面着重说一下这个头像这部分怎么实现? 第一种方案:我们可以用GridView来实现,GridView和ListView的用法是一样的,俗称九宫格

android Activity相对布局的使用方法

相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的.相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一个控件的位置了.本次实验就是显示如下的activity: 其中只有2个button,1个textview,1个edittext. 在相对布局中,一般用到的控件属性解释如下:在相对布局中有如下属性,解释如下:android:layout_above  为将该控件的底部放在指定id控件的上方androi

android动态加载布局文件示例

一.布局文件part.xml: 复制代码 代码如下: <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="

android动态布局之动态加入TextView和ListView的方法

本文实例讲述了android动态布局之动态加入TextView和ListView的方法.分享给大家供大家参考.具体实现方法如下: package org.guoshi; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.guoshi.adapter.ImageAndTextAdapter; import android.app.

android 布局属性详解

android:id 为控件指定相应的ID android:text 指定控件的文本,置尽量使用strings.xml android:grivity 指定控件的基本位置 ,比如举重,居右, android:padding 指定控件的内边距,控件当中的内容 android:singleLine 如果设置为真的话,则将控件的内容在同一行当中显示 android:layout_above 将该空间的底部至于给定ID的空间之上 android:layout_below: 将该控件的顶部至于给定ID的控

android layout 按比例布局的代码

为了创建比例大小的子View,可以将LinearLayout的宽度和高度设为fill_parent, 而将子View的宽度或是高度设为0,然后为子View设置不同权重(weight) ,这样子View的大小就会权值成比例. 本例使用横向LinearLayout,LinearLayout的android:layout_width="match_parent",表示将使用整个屏幕宽度. 对于LinearLayout的几个子View,将它们的宽度都定义为0,android:layout_wi

android LinearLayout和RelativeLayout组合实现精确布局方法介绍

先明确几个概念的区别: padding margin都是边距的含义,关键问题得明白是什么相对什么的边距. padding是控件的内容相对控件的边缘的边距. margin是控件边缘相对父空间的边距.  android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. android:layout_gravity是用来设置该view中的子view相对于父view的位置.比如一个button

Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享

如果想在自定义的View上面显示Button 等View组件需要完成如下任务 1.在自定义View的类中覆盖父类的构造(注意是2个参数的) 复制代码 代码如下: public class MyView2 extends View{ public MyView2(Context context,AttributeSet att) {super(context,att); } public void onDraw(Canvas c) { // 这里绘制你要的内容 } } 2.定义布局文件 复制代码

如何在android中使用html作布局文件

在android开发中,通常使用xml格式来描述布局文件.就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层.大部分企业,其实还是程序员自己动手布局.这样既浪费时间和精力,也未必能达到理想的效果.但是,在企业级的android开发中,使用html页面进行布局,也有很多的优势(例如:简单,大部分开发人员及美工都熟悉,方便统一进行更新,管理).据笔者了解,已经有不少的公司在使用这种方式进行布局开发.这也可能是一种趋势. 下面,我将给出一个实例代码,供大家学习使用html页面给a

Android动态添加设置布局与控件的方法

本文实例讲述了Android动态添加设置布局与控件的方法.分享给大家供大家参考,具体如下: 有时候我们会在代码端,动态的设置,添加布局和控件.下面我们就看来看一下如何处理,直接上代码,代码里面的注解很清楚了. 布局文件:fragment_hot.xml 说明:这个部局,我用的是scrollView做为基础布局,主要是为了实现一个滚动.这里不多说,这个你可以使用任何布局都可以,这里的id我是提前定义的. 这里面的现在有的布局是我为了看到我在代码端,动态添加的代码,是否可以追加到现有布局的后面而加上

Android RelativeLayout相对布局属性简析

RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 android:l

简析Android五大布局(LinearLayout、FrameLayout、RelativeLayout等)

Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLayout(线性布局).FrameLayout(单帧布局).RelativeLayout(相对布局).AbsoluteLayout(绝对布局)和TableLayout(表格布局). 布局一:LinearLayout LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元

Android布局之RelativeLayout相对布局

RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列. 相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上 android:layout_below ----------位于给定DI控件之下  android:layout_toLeftOf -------位于给定控件左边 android:layout_toRightOf ------位于给定控件右边  android

android布局属性详解分享

RelativeLayout 第一类:属性值为true或false android:layout_centerHrizontal  水平居中 android:layout_centerVertical   垂直居中 android:layout_centerInparent相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft   贴紧父元素的左边缘 android:layout_a

详解Android ConstraintLayout 约束布局的用法

前言 在2016年的Google I/O大会上 , Google 发布了Android Studio 2.2预览版,同时也发布了Android 新的布局方案 ConstraintLayout , 但是最近的一年也没有大规模的使用.2017年Google发布了 Android Studio 2.3 正式版,在 Android Studio 2.3 版本中新建的Module中默认的布局就是 ConstraintLayout .如下所示: <?xml version="1.0" enc

android ListView 一些重要属性详解

首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false android:stackFromBottom="true" 第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内.通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部.android:transcri

详解Android TableLayout表格布局

表格布局的标签是TableLayout,TableLayout继承了LinearLayout.所以它依然是一个线性布局. 前言: 1.TableLayout简介 2.TableLayout行列数的确定 3.TableLayout可设置的属性详解 4.一个包含4个TableLayout布局的实例及效果图 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="h

Oracle的数据字典技术简析

正在看的ORACLE教程是:Oracle的数据字典技术简析.数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息. Oracle中的数据字典有静态和动态之分.静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的.以下

ASP的Error对象知识简析

在VBScript中,有一个On Error Resume Next语句,它使脚本解释器忽略运行期错误并继续脚本代码的执行.接着该脚本可以检查Err.Number属性的值,判别是否出现了错误.如果出现错误,返回一个非零值.在ASP3.0中,也可以使用OnErrorGoto0"转回到"缺省的错误处理.在ASP2.0中实际也进行这种处理,但是没有相应文档说明,这在很多asp数据相关处理文件中司空见惯,加上On Error Resume Next,关闭缺省的错误处理,然后用err抓住, If

基于Oracle的面向对象技术入门基础简析开发者网络Oracle

正在看的ORACLE教程是:基于Oracle的面向对象技术入门基础简析开发者网络Oracle.一.概述 对象是Oracle8i以上版本中的一个新的特性,对象实际是对一组数据和操作的封装,对象的抽象就是类.在面向对象技术中,对象涉及到以下几个重要的特性:  封装性 通过对数据和操作的封装,将用户关心的数据和操作暴露出来作为接口,其他数据和操作则隐藏到对象内部,这样便于用户使用和维护.  继承性 对象具有继承性,通过这一特性可以增强程序的可扩展性,适合大型项目的开发.  多态性 同一操作在运行时刻有