您的位置:首页 > 产品设计 > UI/UE

UI布局属性详解

2011-12-25 00:53 267 查看
Android布局容器的属性和使用方法

Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

一、FrameLayout

这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简单,也只能放一点比较简单的东西。

二、LinearLayout

线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

linearLayout中有一个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。

三、AbsoluteLayout

绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x="20px" android:layout_y="12px" 这种布局方式也比较简单,但是在垂直随便切换时,往往会出问题,而且多个元素的时候,计算比较麻烦。

四、RelativeLayout

相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:

相对于某一个元素

android:layout_below="@id/aaa" 该元素在 id为aaa的下面

android:layout_toLeftOf="@id/bbb" 改元素的左边是bbb

相对于父元素的地方

android:layout_alignParentLeft="true" 在父元素左对齐

android:layout_alignParentRight="true" 在父元素右对齐

还可以指定边距等,具体详见API

五。TableLayout

表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式 android:gravity="" 。

每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。

一、.线性布局 LinearLayout 属性详解
1.1方向控制:android:orientation: vertical,horizontal, 运行时动态改变方向setOrientation(),并传入HORIZONTALAK VERTICAL参数。
1.2填充模型:android:layout_width 和android:layout_height特性。这两个特性的值可能是以下3种形式:
a.具体的大小 px,dip,..
b.wrap_content
c.fill_parent
1.3权重:android:layout_weight分配剩余空间所占的比重。使用权重的另一种方式是采用百分比为单位:
a.将布局中部件的android:layout_width值设置为0.
b.将布局中部件的android:layout_width值设置为想要的百分比。.
c.保证布局中所有部件的android:layout_width值之和为100.
1.4 对齐:layout_gravity
1.5内边距和外边距: android:padding/android:marginTop.

二、相对布局 属性详解
2.1 相对于容器定位
android:layout_alignParentTop
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_centerHorizontal
android:layout_centerVertical
android:layout_centerInParent
所 有这些属性值都是一个boolean,true 或false

2.2 特性中的关联记号
1)以@+id/..的形式为布局添加 这个标识符
2)以不带加号的形式(@id/..)引用其他部件;
2.3 相对与其他部件定位
android:layout_above
android:layout_below
android:layout_toLeftOf
android:toRightOf
android:layout_alignTop
android:layout_alignBottom
android:layout_alignLeft
android:layout_alignRight
android:layout_alingBaseline 所谓基线,就是文本恰好位于其上的一条看不见的线。
2.4 求值次序
Androd1.6 以前单次求值方式处理RelativeLayout定义的布局规则。从Android1.6开始,Android以二次求值方式处理布局规则,这样就可以 放心使用那些尚未定义的部件。
三、表格布局 属性详解
3.1 在行中添加单元格
每个Table中放入部件,列的数量由Android控制; 程序员只能间接控制列数。
Android:layout_span------相当于HTML单元格的colspan相似。
Android:layout_column=”2”
3.2 Table的其他子元素
在行间放置部件,TableLayout会像沿垂直方向的LinearLayout一样来对齐他们。
在这种情况下,一般可以使用一个简单的View来设置间距。例如,可以使用<View android:layout_height=”2px” android:background=”#0000FF”/> 来设置一个与表格同宽的2像素高的蓝色分隔条。

3.3 扩展、收缩和折叠
Androd:stretchColumns
Android:shrinkColumns
Androidj:collapseColumns

四、滚动 属性详解

ScrollView
main.xml布局文件
ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳来显示的视图。
ScrollView只支持垂直滚动。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/p1"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
</ScrollView>
显示效果

android布局属性
RelativeLayout用到的一些重要的属性:

第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
第二类:属性值必须为id的引用名“@id/id-name
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离

EditText的android:hint
设置EditText为空时输入框内的提示信息。
android:gravity 
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右
android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右

android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
android:scaleType:
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片不按比例 扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
Drawable文件夹里面的图片命名是不能大写的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: