Layouts
布局有两种声明方式:
1.在xml文件中定义,2. 运行时实例化
xml布局的优势是将代码和布局分离开来。
相关Layout工具:1.adt的eclipse插件可以预览xml布局;2.使用 hierarchyViewer调试布局;3.使用layoutopt(lint)工具分析布局问题
1.Write the XML
此处需要了解布局资源的相关体系结构
- 文件位置:res/layout/filename.xml
- 编译资源类型:view
- 资源引用:
In Java:R.layout.filename;
In Xml:@[package:]layout/filename - 语法:
- 元素:
使用include时,常可以用viewstub,merge等对布局进行优化
2.Load the XML Resource
setContentView加载资源
3.Attributes
4.ID
例如:android:id="@+id/my_button"
@符号表示:解析和扩展id字符串的剩余部分,并标识为一个id资源
+符号表示:这是一个新资源,必须被创建添加到R.java文件中
5.Layout Parameters
每一个ViewGroup类实现一个继承ViewGroup.LayoutParams的内部类.
最常用来设置宽和高的是:wrap_content和match_parent (API 8之前叫做fill_parent),一般使用dp来定义。
5.Layout Position
一个view的几何形状是一个矩形,需要知道左上坐标和宽,高。
6.Size,Padding and Margins
一个view实际拥有两对宽和高值:
- 一对是测量宽度和测量高度
- 另一对是宽度和高度,这个尺寸定义了布局后在屏幕上的实际大小。
7.Common Layouts
Linear Layout, Relative Layout,Web View
8.Building Layouts with an Adapter
当布局内容是动态添加时,你可以通过AdapterView的之类来运行时填充,常用的有List View, Grid View
9.Filling an adapter view with data
常用的数据填充适配器布局的Adapter有:ArrayAdapter和SimpleCursorAdapter
10.Handling click events
实现AdapterView.OnItemClickListener接口来响应点击事件。