您的位置:首页 > 移动开发 > Android开发

Android 学习笔记 (3)界面布局

2010-02-09 19:35 627 查看

Android 界面布局

一、理解布局

1:介绍/:布局就是如何的布置界面的控件(组件),使他们排列的好看,合理。

2:理解布局类:andorid里面的布局和我们传统的布局不是太一样,他综合了Html布局和传统的桌面程序结合。把布局文件写在一个以XML结尾的配置文件里面,达到了界面和逻辑分离的好处。说起布局类,要先说布局里面的部件,比如TextView ,EditView 等组件,他们可以放在一个一个的布局对象里面,他们实现了类:android.view.View;
一个个的组件要放在容器里面,这个容器就是布局对象,也就是viewGroup ,
他是一个抽象类,布局容器实现了 这个类,比如线性布局对象LinearLayout、相对布局对象RelativeLayout对象等等。

3:理解布局参数:当我们把一个一个的组件(控件)放到了 布局对象里面的时候要规定他们的位置。大小等信息,我们要给布局对象一组值,这就是布局参数:LayoutParams

二、布局文件的理解

目录结构大致如下:
Res的文件下面的三个目录如下,当其中的任何一个文件中的内容发生了变化的时候,R资源文件就会自动的编译。
res/layout/ 这个目录存放的就是布局的xml文件,一般默认为main.xml
res/values/ 这个目录存放的是存放常量的xml文件,我们可以在这类定义字符串、颜色、用到的数组等XML结构的文件。
res/drawable/ 这里是我们存放一些图片等资源的地方。

系统提供的布局器,

AbsoluteLayout,LinearLayout,RelativeLayout,TableLayout,FrameLayout

FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角
LinearLayout:里面可以放多个控件,但是一行只能放一个控件
TableLayout:这个要和TableRow配合使用,很像html里面的table
AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置
RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置
(界面的布局好像还可以直接引用一些view,如ScrollView等)

框架的xml如下:
<AbsoluteLayout
android:id="@+id/widget36"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!--
在这里添加控件的代码
-->
</AbsoluteLayout>
AbsoluteLayout
可以通过精确的坐标(如屏幕像素)指定子对象相对父容器的位置
FrameLayout
负责显示单一对象的Layout
Gallery
一个以水平滚动方式显示有序图片列表的显示器
GridView
显示一个可滚动的有m列n行的表格
LinearLayout
以水平或垂直方式显示子元素的Layout。如果窗体的长度超过了屏幕的长度,将会出现滚动条
ListView
显示一个可滚动的单列列表
PopupList
一个独立的带边框的元素弹出列表
RelativeLayout
能够指定子对象相对于其它对象(如A在B的左边)或父对象(如在父容器的顶部)的位置
ScrollView
一个垂直的元素滚动列
Spinner
在一个单行文本框中,同时只显示一个有序列表中的一个项。类似于一个可以水平或垂直滚动的单行listbox
SurfaceView
提供直接访问一个可画图的界面。可以控制在界面顶部的子视图层。SurfaceView是提供给需要直接画像素而不是使用窗体部件的应用使用的。
TabHost
提供一个页签选择列表,监视点击并在一个页签被点击时保证应用切换屏幕。
TableLayout
一个拥有任意行和列的表格layout,每一个单元格拥有窗体部份。行会根据最大的列而自动调整大小。单元格边框不可见。
ViewFlipper
一个在单行文本框中同一时刻只显示一项的列表组件。它可以根据时间周期切换显示项,类似一个幻灯机。
ViewSwitcher
类似ViewFlipper

PS:

个人感觉 就是 混合布局有点意思:
/**
* 这个类是混合了相对布局和 线性布局的,我的理解,就是 开始 有一个线性布局对象,用一个LayoutInflater对象解析我们的
* 相对布局的XML文件并且返回一个 相对布局的对象,作为一个 准备放入 到 线性布局对象里面的 一个组件,
* 放入的时候可以用好几种方法,可以 制定放入的位置大小,可以是数字的 也可以是 布局参数的 。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: