安卓学习笔记 1 布局

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

一个计算器的布局文件

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/msgbox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </EditText>

    </LinearLayout>
    <!-- 显示框 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        <Button android:id="@+id/btn1"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="mc"
    />
       <Button android:id="@+id/btn2"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="m+"
    />

       <Button android:id="@+id/btn3"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="m-"
    />

       <Button android:id="@+id/btn4"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="mr"
    />   

       </LinearLayout>
       <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        <Button android:id="@+id/btn5"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="C"
    />
       <Button android:id="@+id/btn6"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="+/-"
    />

       <Button android:id="@+id/btn7"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="/"
    />

       <Button android:id="@+id/btn8"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="*"
    />   

       </LinearLayout>

       <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
        <Button android:id="@+id/btn9"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="7"
    />
       <Button android:id="@+id/btn10"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="8"
    />

       <Button android:id="@+id/btn11"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="9"
    />

       <Button android:id="@+id/btn12"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="-"
    />   

       </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn13"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="4" />

        <Button
            android:id="@+id/btn14"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="5" />

        <Button
            android:id="@+id/btn15"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="6" />

        <Button
            android:id="@+id/btn16"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="+" />
    </LinearLayout>
    <LinearLayout

        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:baselineAligned="false">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:orientation="vertical" >

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                 >

                <Button
                    android:id="@+id/btn17"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="1" />

                <Button
                    android:id="@+id/btn18"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="2" />

                <Button
                    android:id="@+id/btn19"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="3" />

            </LinearLayout>
             <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                 >
                <Button
                  android:layout_weight="2"
                    android:id="@+id/btn20"
                    android:layout_width="0px"
                    android:layout_height="wrap_content"
                    android:text="0" />
                <Button
                    android:layout_weight="1"
                    android:id="@+id/btn21"
                    android:layout_width="0px"

                    android:layout_height="wrap_content"
                    android:text="." />

                 </LinearLayout>
        </LinearLayout>

       <LinearLayout
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:orientation="horizontal" >

              <Button

                    android:id="@+id/btn22"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="=" />
          </LinearLayout>

    </LinearLayout>

</LinearLayout>

框架布局

框架布局

框架布局是最简单的布局方式,所有的试视图都是以层叠的方式显示。第一个添加到框架布局的视图会先是在最底层,最后一个放在最高层,上层会覆盖下层。类似堆栈布局。


属性值


描述


Top


置于顶端


Buttom


置于最低端


Left


置于左侧


Right


置于右侧


Center_vertical


垂直方向居中


Horizontal_vertical


水平方向居中

<FrameLayout 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" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/gg" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center"
        android:layout_marginLeft="80dp"
        android:layout_marginTop="80dp"
        android:background="@drawable/ll" />

</FrameLayout>

相对布局 RelativeLayout

以一个元素为参照物,其他元素围绕展开


属性


说明


android:layout_below=""


在某元素下面


android:layout_above=""


在某元素上面


android:layout_toLeftOf=""


在某元素左侧


android:layout_toRightOf=""


再某元素右侧

<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"
    android:orientation="vertical" >
<Button
    android:id="@+id/btnzuoshang"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="左上方"
    android:textSize="16dp"
    />
<Button
    android:id="@+id/btncenter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/btnzuoshang"
    android:layout_below="@id/btnzuoshang"
    android:text="中心点"
    android:textSize="16dp"
    />
<Button
    android:id="@+id/btnyouxia"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/btncenter"
    android:layout_below="@id/btncenter"
    android:text="右下角"
    android:textSize="16dp"
    />
  <Button
    android:id="@+id/btnzuoxia"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/btncenter"
    android:layout_below="@id/btncenter"
    android:text="左下角"
    android:textSize="16dp"
    />

  <Button
    android:id="@+id/btnyoushang"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/btncenter"
    android:layout_above="@id/btncenter"
    android:text="右上角"
    android:textSize="16dp"
    />

</RelativeLayout>

表格布局 TableLayout

TableLayout属性:

Shrinkable 如果一个列被标识为shrinkable 则该列宽度可以收缩,使表哥能够适应其父容器大小。

Stretchable如果一个列被标识为Stretchable则该列宽度可以进行拉伸,使其填满表格中的空闲空间

Collapsed 如果一个列被标识为Collapsed 则该列会被隐藏

一个列可以同时具有Shrinkable以及Stretchable属性,该列宽度可以任意拉伸和收缩以适应父容器大小。

TableLayout继承了linearlayout类,除了父类的方法还有一下属性以及方法


属性


方法


android:collapseColums


设置指定列号属性为Collapsed


android:shrinkColums


设置指定列号属性为Shrinkable


android:stretchColums


设置指定列号属性为Stretchable

Tablelayout列号从0开始

setShtinkAllcolums和setStretchAllcolums把表格所有的列设置为Shrinkable以及Stretchable

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/table1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"
        android:stretchColumns="0" >

        <TableRow
            android:id="@+id/row1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:background="#fd8d8d"
                android:padding="4px"
                android:text="第一行"
                android:textColor="#000000" />
        </TableRow>
    </TableLayout>

    <TableLayout
        android:id="@+id/table2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="0,1,2,3" >

        <TableRow
            android:id="@+id/row2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/btn1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="button1" />

            <Button
                android:id="@+id/btn2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="button1" />

            <Button
                android:id="@+id/btn3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="button1" />

            <Button
                android:id="@+id/btn4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="button1" />
        </TableRow>
    </TableLayout>

    <TableLayout
        android:id="@+id/table3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"
        android:stretchColumns="0" >

        <TableRow
            android:id="@+id/row3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <EditText
                android:id="@+id/ed1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="输入查询关键字" />
        </TableRow>
    </TableLayout>

</LinearLayout>
时间: 2024-10-10 14:29:40

安卓学习笔记 1 布局的相关文章

安卓学习笔记(二)基本构件

1.Activity 一个Activity,通常是用户在某一个时刻,在设备上看到的单独的界面.一个应用程序通常含有多个Activity,用户可在期间进行切换.对用户而言,这就是程序的外观部分. Activity的生命周期:启动一个Activity可能会消耗大量资源.他可能会涉及到新建一个Linux进程.为UI对象申请内存空间.从UML布局填充所有对象,以及创建整个界面.为了避免这种浪费,Android通过ActivityManager来管理活动的生命周期. ActivityManager负责创建

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

DuiLib学习笔记4——布局

有了前面三篇的基础,现在可以开始布局了. 首先任何布局都必须包含在<Window></Window>标签内,跟<html></html>很像. DuiLib提供了两种布局方式,水平布局和垂直布局,虽然没有css左右浮动那么方便,但是有这些东西,完全可以像写页面table一样去完成. 水平布局是HorizontalLayout,垂直布局为VerticalLayout.在Window标签内,默认的是垂直布局. 下面来看一段代码,包含了水平和垂直布局. <?

【安卓学习笔记1】安卓基本组件Activity,Service,BoradCastReceiver,ContentProvider简介

因为博主以前学习过安卓的一点知识,所以学习笔记和别人不太一样. 博主的学习参考书籍是疯狂android讲义第二版.本系列博客都是记录学习笔记的. 因为博主平时还要上班,所以也就晚上有时间看书,写博客. 博主坚持每天看一个小时的书,记录一下随笔心得. 希望能给大家带来帮助. =========================================================================== 安卓的基本组件 =============================

安卓学习笔记一

在学习安卓之前,首先要对编程平台有一定的了解,才会方便我们日后的操作,这里我用的是eclipse集成的安卓环境. 编写代码总的来说可以划分为两部分,一个是安卓语言如配置权限,设置样式,放置控件之类的,另一个是java语言,实现程序的功能.所以安卓的学习主要还是控件与安卓API的使用,而JAVA语言这里不再赘述. 至于创建安卓工程,只要能大概认识英语,也就知道过程中设置的具体是什么, 其中依次为设置工程名,安卓型号,创建ACTIVITY,设置工作目录,设置图标样式,设置ACTIVITY样式,设置a

安卓学习笔记---Activity

由于学期实训的要求,我开始学习安卓了.从本月一号开始,学了五天了.时间短,刚学到的东西容易忘,我记一下笔记. 首先是对Activity的理解.activity首先是一个java类,我们创建一个新的activity类,得继承Activity,这是android的jar包里的. 我的理解他就是一个控件的容器,就是我们使用手机时看的的一个窗口.本身没有什么实质的内容.       每一个创建的activity都得在AndroidManifest.xml文件中注册一下. 都要重新onCreate方法.

【读书笔记】安卓学习笔记第一篇——个人杂谈

最近打算转向安卓平台的安全了,因为之前一直没有接触过安卓平台的安全,所以要从最底层的安全机制开始学起.一直以来都是在做Windows平台的安全的,对于Linux的了解不多,而安卓恰好又是基于linux平台的东西.所以搞安卓平台就很有必要去学习一下系统机制方面的东西了.最近看了一些资料, 对于安卓平台有了一个初步的理解,首先安卓给我的感受就是系统的层次很复制.我比较熟悉Windows的东西,Windows是基于子系统进行架构的,但是事实上子系统根本就只有一个win32,对于应用层来说很简明,就是系

安卓学习记录 帧布局显示目录

it安卓 注意画红线部分 在eclipse 新版本5.1.1下编译 1)写一个类继承Fragement 2)对于menu中的XML   要注意 将android复制一下,然后将末尾改为res-auto,让其自动查询 3)在AndroidManifest.xml中 类要关联库 4)关联库 5)运行图 不同帧布局的菜单都不一样

Android学习笔记之布局技巧以及布局中的细节介绍....

PS:休息两天,放一放手上的东西,做做总结... 学习内容: 1.Android中LinearLayout布局技巧... 2.layout中drawable属性的区别...   先简单的介绍一下drawable属性的区别,这个算是比较简单的,但是还是有一点点的小细节需要进行说明,drawable有五个文件夹,分别为hdpi,ldpi,mdpi,xdpi,xxdpi,这五个文件夹想必大家都知道,其实就是为了适应不同分辨率,由于手机分辨率的不同,因此我们的图片需要适应不同手机的分辨率...hdpi: