android学习第二课(布局管理)
来源:互联网 发布:中国体育网络电视台 编辑:程序博客网 时间:2024/06/07 07:05
一、线性布局LinearLayout
1.orientation --表示线性布局的方向,horizontal:水平方向 vertical:垂直方向 2.android:layout_gravity与android:gravity区别名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。
android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。
比如说button: android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。
<?xml version="1.0" encoding="utf-8"?><!--线性布局,最外面包裹一个水平线性布局--><!--orientation表示线性布局的方向,horizontal:水平方向 vertical:垂直方向 --><!-- @代表R类,如果是自定义的ID 则用@+id/××× 表示,如果是引用R类的资源则@string/×××--><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:background="@drawable/bg" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/linear" /> <Button android:id="@+id/button" android:layout_width="183dp" android:layout_height="wrap_content" android:text="@string/button" /> <ImageButton android:id="@+id/imagebutton" android:layout_width="180dp" android:layout_height="48dp" android:src="@drawable/imagebutton" /> </LinearLayout> <!-- android:layout_gravity与android:gravity区别,拿一个button作为例子 前者的意思,是这个按钮的位置,如果设置为right则表示这个按钮整体位置靠右; 后者的意思,这个按钮上显示内容的位置。 --> <LinearLayout android:gravity="right" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/imageview" android:layout_marginTop="5dp" android:src="@drawable/imageview" android:layout_width="131dp" android:layout_height="131dp" /> </LinearLayout></LinearLayout>
二、表格布局TableLayout
TableLayout特点: 1)TableLayout和我们平时在网页上见到的Table有所不同,TableLayout没有边框的 2)它是由多个TableRow对象组成,每个TableRow可以有0个或多个单元格,每个单元格就是一个View。这些TableRow,单元格不能设置layout_width,宽度默认是fill_parent的,只有高度layout_height可以自定义,默认是wrap_content。 3)单元格可以为empty,并且通过android:layout_column可以设置index值实现跳开某些单元格。在TableRow之间 4)添加View,设置layout_height以及背景色,就可以实现一条间隔线。android:layout_span可以设置合并几个单元格
<?xml version="1.0" encoding="utf-8"?> <TableLayout android:id="@+id/tableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:stretchColumns="*" > <TableRow android:id="@+id/tableRow0" android:layout_width="wrap_content" android:layout_height="wrap_content"> <EditText android:digits="1234567890.+-*/=%\n\t()" android:layout_width="fill_parent"android:layout_span="4" ></EditText> </TableRow> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="(" android:layout_width="1dip" ></Button> <Button android:text=")" android:layout_width="1dip" ></Button> <Button android:text="*" android:layout_width="1dip" ></Button> <Button android:text="back" android:layout_width="1dip" ></Button> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="7" ></Button> <Button android:text="8" ></Button> <Button android:text="9" ></Button> <Button android:text="%" ></Button> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="4" ></Button> <Button android:text="5" ></Button> <Button android:text="6" ></Button> <Button android:text="/" ></Button> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="1" ></Button> <Button android:text="2" ></Button> <Button android:text="3" ></Button> <Button android:text="-" ></Button> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="0" ></Button> <Button android:text="." ></Button> <Button android:text="+" ></Button> <Button android:text="*" ></Button> </TableRow> <!-- 设置tr间的分割线 --> <View android:layout_height="20dip" android:background="#C4C4C4"></View> </TableLayout>
三、绝对布局AbsoluteLayout
layout_x:指定布局中子组件的X坐标Lyout_y:指定布局中子组件的Y坐标px(像素)dip/dp:独立设备像素(device independent pixels)主要处理组件的大小宽度sp:主要处理文字大小
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:layout_x="20dip"android:layout_y="20dip"android:id="@+id/textView1"android:text="用户名:" android:layout_width="wrap_content"android:layout_height="wrap_content" ></TextView><EditText android:layout_x="80dip" android:layout_width="wrap_content"android:id="@+id/editText1" android:text="EditText"android:layout_height="wrap_content" android:width="200px"></EditText><TextView android:layout_x="20dip" android:id="@+id/textView2"android:text="密码:" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_y="75dip"></TextView><EditText android:layout_x="80dip" android:layout_width="wrap_content"android:id="@+id/editText2" android:text="EditText"android:layout_height="wrap_content" android:layout_y="75dip" android:width="200px" android:password="true"></EditText><Button android:text="登录" android:layout_x="130dip"android:id="@+id/button1" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_y="135dip"></Button></AbsoluteLayout>
四、相对布局RelativeLayout
RelativeLayout.LayoutParams中可以找到大量的属性1.相对于布局的属性:比如说,layout_centerHorizontal 子组件是否位于布局容器的水平居中位置layout_alignParentBottom子组件是否与布局底端对其等等2.相对其他组件属性:比如说,layout_toRightOf 控制该组件位于给定ID的右侧
<?xml version="1.0" encoding="utf-8"?><!-- 相对布局 一个控件相对于另一个控件或者容器的位置。 --><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@drawable/bg" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:id="@+id/describe_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:textColor="#556055" /> <!-- 这个TextView相对于上一个TextView 在 它的下方所以设置属性为layout_below--> <TextView android:id="@+id/username_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:text="@string/username" android:textColor="#556055" android:layout_below="@id/describe_view" /> <EditText android:id="@+id/username_edit" android:layout_width="90dp" android:layout_height="40dp" android:layout_marginTop="4dp" android:layout_toRightOf="@id/username_view" android:layout_below="@id/describe_view" /> <TextView android:id="@+id/sex_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:text="@string/sex" android:textColor="#556055" android:layout_below="@id/describe_view" android:layout_toRightOf="@id/username_edit" /> <RadioGroup android:id="@+id/sex_radiogroup" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/sex_view" android:layout_below="@id/describe_view" > <!--第一个RadioButton --> <RadioButton android:id="@+id/male_radiobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" /> <!--第二个RadioButton --> <RadioButton android:id="@+id/woman_radiobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" /> </RadioGroup> <TextView android:id="@+id/age_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" android:text="@string/age" android:textColor="#556055" android:layout_below="@id/username_view" /> <EditText android:id="@+id/brithday_edit" android:layout_width="90dp" android:layout_height="40dp" android:layout_marginTop="4dp" android:hint="@string/selectdate" android:textSize="13sp" android:gravity="center" android:editable="false" android:layout_toRightOf="@id/age_view" android:layout_below="@id/username_edit" /> <TextView android:id="@+id/education_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" android:text="@string/education" android:textColor="#556055" android:layout_below="@id/sex_view" android:layout_toRightOf="@id/brithday_edit" /> <!-- 下拉列表控件 --> <Spinner android:id="@+id/edu_spinner" android:layout_width="108dp" android:layout_height="38dp" android:layout_below="@id/sex_radiogroup" android:layout_toRightOf="@id/education_view" /> <TextView android:id="@+id/interest_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" android:text="@string/interest" android:textColor="#556055" android:layout_below="@id/age_view" /> <!-- 复选框控件 --> <CheckBox android:id="@+id/car_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/car" android:textColor="#566156" android:layout_toRightOf="@id/interest_view" android:layout_below="@id/brithday_edit" /> <CheckBox android:id="@+id/sing_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="@string/sing" android:textColor="#566156" android:layout_toRightOf="@id/car_check" android:layout_below="@id/brithday_edit" /> <CheckBox android:id="@+id/movie_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="@string/movie" android:textColor="#566156" android:layout_toRightOf="@id/sing_check" android:layout_below="@id/brithday_edit" /> <Button android:id="@+id/submit_button" android:layout_width="100dp" android:layout_height="40dp" android:text="@string/submit" android:gravity="center" android:layout_below="@id/movie_check" android:layout_marginLeft="210dp" android:layout_marginTop="15dp" /></RelativeLayout>
五、框架布局FrameLayout
框架布局,确切的说应该是叫做帧布局,因为子控件均显示在屏幕的左上角,层叠式排列。此布局无法控制子控件的大小与位置
<?xml version="1.0" encoding="utf-8"?><!-- 帧布局,所以子控件均显示在屏幕的左上角,层叠式排列。此布局无法控制子控件的大小与位置, 但是子控件自身可以控制其位置大小 --><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" > <!-- 图片显示控件 并且在容器的右侧显示 --><ImageView android:id="@+id/one_imageview"android:src="@drawable/one"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="right"/><!-- 第二张图片显示在左侧底部 --><ImageView android:id="@+id/two_imageview"android:src="@drawable/two"android:layout_width="wrap_content"android:layout_height="fill_parent"android:scaleType="fitEnd"/></FrameLayout>
上述代码参考网络上的,仅仅做为参考,代码见附件了.点击下载
- android学习第二课(布局管理)
- QT学习 第二章:布局管理--基本布局管理
- 深入浅出学习 Android之Android布局管理:LinerLayout线性布局
- 深入浅出学习 Android之Android布局管理:LinerLayout线性布局
- Android学习第二天------布局方式(相对布局、网格布局、绝对布局)
- Android学习进程(三):布局管理
- android学习1--布局管理常用属性
- Android布局第二天
- Android学习第二课
- Android学习记录第二篇 (layout布局)
- 《Android面试宝典》学习笔记(第二章:布局)
- Android学习第二天之相对布局RelativeLayout
- Android学习(8)-Android用户界面(布局管理)
- android学习笔记(3)-android的布局管理
- RecyclerView学习--布局管理
- Android布局管理
- Android布局管理
- android的布局管理
- 【HD视频】-华为北研好极客-Geek
- Java内省机制
- ios开发答疑录系列---ios编译正常,但无法运行到真机和模拟器上 ,Choose a destination with a supported architecture
- 嵌入式系统概述
- Windows 2003 IIS服务常见故障排查全攻略
- android学习第二课(布局管理)
- 动态加载dll,扩展系统功能
- Fedora安装android开发环境
- 硬盘安装XUBUNTU
- SDL及扩展库在ARM-Linux 完整移植
- Ant Task check if a file exists
- git 获取分支代码
- CentOS6.3 安装gcc及简单使用
- jqGrid 属性、事件全集