Android的布局

来源:互联网 发布:无心捏脸数据 编辑:程序博客网 时间:2024/06/04 01:03

Android布局主要有五种

1.Linearlayout  线性布局
2.RelativeLayout  相对布局
3.FrameLayout 帧布局
4.TableLayout   表格布局(过时)
5.AbsoluteLayout  绝对布局(过时)  
[注]:4.0版本以后  新增了一个布局:GridLayout

这里主要讲解Linearlayout  RelativeLayout  FrameLayout    GridLayout   

LinearLayout线性布局

概念:单一方向的布局  按水平方向或者垂直方向所有子元素 在水平方向或者垂直方向 每一行或者每一列只能有一个元素

属性:

1.LinearLayout的方向属性   orientationandroid:orientation:方向属性   有俩个方向  horizontal(水平),vertical(垂直)

android:orientation="horizontal"

android:orientation="vertical" 

LinearLayout  默认是有方向的      水平方向

2.LinearLayout的权重属性android:layout_weight="1" 权重属性   分配父控件的剩余空间 

             剩余空间:父控件的宽或者高  减去  子控件 (所有子元素)的宽或者高 (*和方向有关)
     分配:子控件的宽或者高 = 原有的宽度或者高度  + 剩余空间(宽或者高)/子控件权重的和  *子控件的权重
             note :使用android:layout_weight时设置子控件的宽或者高为0dp(成比例进行分配)

3. android:layout_gravity="bottom"  相对于父控件的位置

android:layout_gravity属性和父控件的方向有关
 如果父控件是水平方向android:layout_gravity的自身的水平方向属性是无效的
 如果父控件是垂直方向 android:layout_gravity的自身的垂直方向属性是无效的

4.android:gravity="bottom|right"

如果当前属性是在布局节点:子元素相对于自身的位置
如果当前属性在控件中  (button ,TextView..)控制的是控件里的内容   (文字)


RelativeLayout相对布局

概念:根据控件的相对位置  进行布局  
属性:  16个

 1.居中位置

        android:layout_centerInParent="true"相对于父控件的中央位置
android:layout_centerHorizontal="true"相对于父控件的水平居中
android:layout_centerVertical="true"相对于父控件的垂直居中
水平居中和垂直居中  可以重复使用    

 2,对齐位置

        android:layout_alignParentTop="true"   相对于父控件的  上对齐
android:layout_alignParentBottom="true" 相对于父控件的  底边对齐
android:layout_alignParentRight="true" 相对于父控件的  右对齐
android:layout_alignParentLeft="true"  相对于父控件的  左对齐
相对兄弟控件的位置
相对兄弟元素的位置
 android:layout_above="@+id/tv1"   在指定兄弟控件的上边(顶部)
 android:layout_below="@+id/tv1"   在指定兄弟控件的下边(底边)
 android:layout_toLeftOf="@+id/tv1"在指定兄弟控件的左边
 android:layout_toRightOf="@+id/tv1"在指定兄弟控件的右边
                相对于兄弟控件的对齐方式 :
   android:layout_alignTop="@id/tv_money"  相对指定兄弟控件的顶部对齐
   android:layout_alignBottom="@id/tv_money"相对指定兄弟控件的底部对齐
   android:layout_alignLeft="@id/tv_money"  相对指定兄弟控件的左侧对齐
   android:layout_alignRight="@id/tv_money" 相对指定兄弟控件的右侧对齐
   android:layout_alignBaseline="@id/tv_money"相对指定兄弟控件的基准线对齐

Framelayout:帧布局(不常用)   

概念:每个组件都是一帧   当前子组件会覆盖前一个组件
属性:

 android:layout_gravity="center"  控制 当前组件的位置
          android:foreground="@drawable/ic_launcher"放置在布局管理器所有组件之上
          android:foregroundGravity="top|right"  控制放置的位置  属性可以用"|" 叠加使用  属性不能互斥

GridLayout:网格布局(不常用)

android:orientation="vertical"  排列方式
android:rowCount="3"  行的数量
android:columnCount="3"列的数量 
位置是从0开始
     android:layout_row="0"    控件在第几行展示
     android:layout_column="0" 控件在第几列展示
     

【备注:】

颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。
#FFFFFF 代表白色
#000000  黑色
#FFFFFFFF   完全不透明
#00FFFFFF   完全透明
#88FFFFFF   半透明


sp、dp、dip、pt、px等单位的区别?
  1. dpi    dpi指像素密度。dots per inch  ,即每英寸内像素点的个数。它不是表示长度的单位。在android中认为:低(120dpi),中(160dpi),高(240dpi),超高(320dpi)。随着技术的增长,实际dpi已经超出这个定义范围。
  2. dip    device independent pixels  ,即与设备无关的像素。目前这个单位已经被dp所取代,而不建议使用dip。
  3. dp     与dip的概念一样。不过dp已经取代了dip。在Android中用来表示非文字大小的尺寸。例如:外边距、内填充等。
  4. sp      scale  independent  pixel  ,即与缩放比例无关的像素。在android中常用来表示文字大小。
  5. px      表示像素。因为同样是200px,但是在不同手机下显示的大小是不同的。
  6. pt      point磅。1磅=1/74英寸
  • 总之:dp是用来定义非文字的尺寸,sp用来定义文字大小。px只用于产生一条一像素的分割线时使用。


0 0
原创粉丝点击