FrameLayout 框布局
框布局是最简单的布局类型. 它基本就是屏幕上的一块空白区域, 你可以使用一个单独的对象例如图片等来填充它. 框布局的所有子元素都被"钉"在屏幕的左上角; 你无法为子view指定一个不同的位置. 后来的子view会简单的覆盖原先的, 除非后来的对象是透明的.
LinearLayout 线性布局
线性布局会按照一个单一的方向来对齐它所有的子元素 -- 从上到下或者从左到右. 所有的子元素依次排列, 因此一个竖直列表每行一个元素, 而水平列表每列一个元素. 一行的高度取决于最高的子元素, 再加上padding(补白). 线性布局考虑子元素之间的margin(间隔)以及gravity(重力)(分为左/中/右对齐).
线性布局还支持为每个独立的子元素分配一个weight(权重). 权重属性为一个view分配了一个"重要性"的值, 并允许它扩展并占据父view中的剩余空间. 子view可以指定一个整数权重值, 这样view group中的剩余空间按照权重来分配给所有的子view. 默认权重为0. 例如, 如果有三个文本框, 其中前两个有值为1的权重, 而第三个的权重为0. 那么第三个文本框将仅仅占据它需要的空间. 另两个会以相等的长度扩展并填充所有的剩余空间. 如果第三个文本框权重为2, 那么它就比另两个"更重要", 因此它会得到剩余空间的一半, 剩下的一般由前两个平分.
在一个水平排列的LinearLayout中,各项按他们的文本基线进行排列(第一列第一行的元素,即最上或最左,被设定为参考基线)。因此,人们在一个窗 体中检索元素时,就不需要七上八下地读元素的文本了。我们可以在layout的XML中设置 android:baselineAligned="false",来关闭这个设置。
LinearLayout定义的参数有:
android:layout_[width|height| weight],
padding[Bottom|Left|Right|Top],
RelativeLayout 相对布局
相对布局使得它的子view可以指定它们现对于父 view或者相对于其它子元素的位置(使用ID来指定). 这样你可以将两个元素按右边界对齐, 或者让一个在另一个之下, 在屏幕中间, 在屏幕左边居中, 等等. 元素是按定义的顺序来渲染的, 所以如果前一个元素位于屏幕正中, 相对该元素定位的其它的元素将会相对屏幕正中进行定位. 并且, 由于这种顺序性, 如果使用xml来定义布局, 那么被引用的元素必须在引用它的元素之前列出.
这些属性有的是由元素直接支持的, 有些是它的LayoutParams元素支持的(子类RelativeLayout, 由于所有元素都是RelativeLayout父元素的子元素).
RelaytiveLayout定义的参数有:
android:layout_[width|height],
width, height, below,
alignTop, toLeft,
padding[Bottom|Left|Right|Top],
margin[Bottom|Left|Right|Top].
layout_alignParent[Left| Right|Top|Bottom]:紧挨着父窗口的边上。
layout_center[InParent| Horizontal |vertical]:上下左右居中,水平居中,垂直居中
注意有些参数只支持相对布局位置 -- 它们的值必须是参考元素的id. 例如, 为一个TextView设置toLeft="my_button", 将使它放置在ID为my_button的view的左边.
ScrollView
等等
Android中gravity和layout_gravity的区别
<Button android:id="@+id/Button03"
android:layout_height="wrap_content"
android:text="hello"
android:gravity="right"
android:layout_gravity="left"
android:layout_width="300px">
</Button>
所以说gravity控制的是view内的content对齐方式,而layout_gravity控制的是控件与parent的对齐方式
修改Activity的标题和图标
Window.FEATURE_CUSTOM_TITLE /Window.FEATURE_LEFT_ICON
//first step
requestWindowFeature(Window.FEATURE_LEFT_ICON);
//second step
setContentView(R.layout.dialog_activity);
//third step
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,
android.R.drawable.ic_dialog_alert);