android之layout(一) FrameLayout、LinearLayout

新知识介绍:

layout:布局。我们有很多控件,但是我们要把这些控件如何摆放,怎么样摆放合理、美观,这就是布局了。

有以下几种布局方式:FrameLayoutLinearLayout RelativeLayout TableLayout 。

 

现在我们来介绍前两种:

1、FrameLayout:是 最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定 在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡 住(除非后一个子元素是透明的)。

FrameLayout默认填充widget等在左上角,然后后面的控件遮住前面的,比如说有两个TextView,Text内容分别是I am textview 1 和I am textview 2 看到的效果会如下(只显示最新的):

 

 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
xmlns:android="htHTMLtp://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="I am textview 1"
    />
    <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="I am textview 2"
    />
    
</FrameLayout>
 

 

这个布局并不常用,大家可以看看就行了。

 

1、LinearLayout单向布局,最常见的布局,可以有横向或者纵向布局。所有的子元素都被堆放在其它元素之后,因此一个垂直列表的每一行只会有一个元素,而不管他们有多 宽,而一个水平列表将会只有一个行高(高度为最高子元素的高度加上边框高度)。LinearLayout保持子元素之间的间隔以及互相对齐(相对一个元素 的右对齐、中间对齐或者左对齐)。 

 

LinearLayout 还支持为单独的子元素指定weight。好处就是允许子元素可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串小对象挤成一堆的情况,而是允许他们放大填充空白。子元素指定一个weight值,剩余的空间就会按这些子元素指定的weight比例分配给这些子元素。默认的weight值为0。例如,如 果有三个文本框,其中两个指定了weight值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大。

 

LinearLayout是Android sdk创建project时的默认Layout,支持两种方式,默认是垂直vertical的线性layout,另一个是水平horizontal方向的线性排列。

 

话不多说,看代码:

这个是横向排列,"vertical":

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="I am textview 1"
    />
    <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="I am textview 2"
    />
    
</LinearLayout>
 

 

 

这个是纵向排列,"horizontal":

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="10px" 
    android:layout_height="fill_parent" 
    android:text="I am textview 1"
    />
    <TextView  
    android:layout_width="10px" 
    android:layout_height="wrap_content" 
    android:text="I am textview 2"
    />
    
</LinearLayout>
 

 

 

怎么样,现在清楚了吧? 至于weight,大家可以下去调试,下节课我将讲解。

 

我上传的附件是横向和纵向相结合的布局,可以看看。

 

搞定,打完收工!

 

你可能感兴趣的:(android,layout,FrameLayout,LinearLayout)