android提供了5中布局,线性布局,相对布局,帧布局。表格布局和绝对布局

线性和相对布局用的是最多的

以下要说的是线性布局

提到线性布局 一定要记住。它里面的全部组件一定不会重叠的,

切不会换行。当组件排列到窗口的边缘后,后面的组件不会显示不来。


线性布局是将放入当中的组件依照水平或者垂直方向来布局的

 线性布局的语法:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">

   属性列表

</LinearLayout>

简单的写一个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#66ff66"
        android:textSize="25sp"
        android:text="面码" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         android:textSize="25sp"
        android:background="#ff0000"
        android:text="小木" />
    
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         android:textSize="25sp"
        android:background="#ffcc33"
        android:text="小桃" />    


</LinearLayout>
效果图:


这个是垂直方向排列的,

线性布局中经常使用的属性:

 android:orientation 指定线性布局排列的方向。其值有vertical是垂直horizontal是水平。

 andorid:gravity 布局管理器内组件的对其方法。上下左右,这个前面已经说了,这里

在提起是想说当同一时候指定多个属性的时候中间用|分开 比如left|bottom.

android:layout_width 指定组件的宽度,其值有fill_parent,match_parent,wrap_content,

当中fill_parent和match_parent作用同样。表示组件的宽度与父容器的宽度同样。

(android2.2之后推荐使用match_parent)

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#66ff66"
        android:textSize="25sp"
        android:text="面码" />
比如这个textview 的宽度就是和手机屏幕的宽度一样。

wrap_content表示该组件的宽度恰好和它的宽度一样

比如上面textview的高度。这个高度和字体的高度一样的。

android:layout_height 指定组件的高度。里面的值和宽度一样

android:id 指定当前组件的一个id属性。 这个指定之后android会在

R.java中自己主动生成唯一的id值。

android:weight 权重,这个就不再说了,不理解的參考

http://blog.csdn.net/qq_33210042/article/details/50907811

android:background 指定组件的背景, 这个要说下它的指定方法

1 直接使用颜色值就像我上面的代码android:background="#ffcc33"

2 调用图片anroid:background="drawable/图片的名字"

3 使用android系统自带的 android:background="@android:color/white"

android:visibility 指定布局中的组件是否显示,gone 隐藏,visible显示。

invisible不显示但赞内存

以下说一个线性布局的技巧(这个老师教的):

先看代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#66ff66"
        android:textSize="25sp"
        android:layout_gravity="right"
        android:text="面码" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:textSize="25sp"
        android:background="#ff0000"
        android:layout_gravity="left"
        android:text="小木" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:textSize="25sp"
        android:background="#ffcc33"
        android:layout_gravity="top"
        android:text="小桃" />    
        
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:textSize="25sp"
        android:background="#ffcc33"
        android:layout_gravity="center"
        android:text="小桃" /> 


</LinearLayout>



看图能发现top没有效果了, 设置成bottom一样没有效果

这里总结下:

线性布局 是竖直方向是,左右对齐有效,顶部底部对齐无效。水平

居中生效。竖直居中无效,

在水平方向上则是反过来的,有兴趣的童鞋能够试试。大笑