Android布局之FrameLayout

FrameLayout介绍
所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的组件。默认组件都在靠左上角放置,但是我们可以通过 “layout_gravity”和 "layout_margin..."结合来设置控件的摆放位置
 
使用场景
FrameLayout看起来比较简单,但对于初学的人来说不是很好理解,显的比较神秘,能用好的话必需得多实践下。
使用场景:当应用的界面上有层叠的控件时,这时我们需要用到FrameLayout。
 
简单示例

Android布局之FrameLayout
 
 
代码实现:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textview1"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center"
        android:background="#FF33ffff" />

    <TextView
        android:id="@+id/textview2"
        android:layout_width="240dp"
        android:layout_height="240dp"
        android:layout_gravity="center"
        android:background="#FF33ccff" />

    <TextView
        android:id="@+id/textview3"
        android:layout_width="180dp"
        android:layout_height="180dp"
        android:layout_gravity="center"
        android:background="#FF3399ff" />

    <TextView
        android:id="@+id/textview4"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_gravity="center"
        android:background="#FF3366ff" />

    <TextView
        android:id="@+id/textview5"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:background="#FF3300ff" />
</FrameLayout>

 
复杂示例
比如下面这个界面,可以看到整个界面是一个大的轮播图(ViewPager实现),可以左右滑动功换广告图片,在这个轮播图上面有“微信登录”、“注册”、“登录”等按扭。

Android布局之FrameLayout
 
代码实现:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_lightblue"
    android:orientation="vertical" >

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <android.support.v4.view.ViewPager
            android:id="@+id/vpContainer"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_centerInParent="true" />

        <LinearLayout
            android:id="@+id/ll_dot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="350px"
            android:orientation="horizontal" >
        </LinearLayout>
    </FrameLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:orientation="vertical"
        android:padding="60px" >

        <LinearLayout
            android:id="@+id/ll_wechatlogin"
            android:layout_width="fill_parent"
            android:layout_height="138px"
            android:layout_centerInParent="true"
            android:background="@drawable/button_white_bg"
            android:drawableLeft="@drawable/wechatlogo_xh"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:paddingBottom="38px"
            android:paddingTop="38px" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/wechatlogo_xh" />

                <TextView
                    android:id="@+id/tv_wechatlogin"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_marginLeft="10px"
                    android:background="@drawable/button_white_bg"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:text="微信登录"
                    android:textColor="@color/color_black"
                    android:textSize="40px" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="50px"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/btn_register"
                android:layout_width="0dp"
                android:layout_height="138px"
                android:layout_weight="5"
                android:background="@drawable/button_transparent_bg"
                android:paddingBottom="38px"
                android:paddingTop="38px"
                android:text="注册"
                android:textSize="40px" />

            <View
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1" />

            <Button
                android:id="@+id/btn_login"
                android:layout_width="0dp"
                android:layout_height="138px"
                android:layout_weight="5"
                android:background="@drawable/button_transparent_bg"
                android:paddingBottom="38px"
                android:paddingTop="38px"
                android:text="登录"
                android:textSize="40px" />
        </LinearLayout>
    </LinearLayout>

    <TextView
        android:id="@+id/login_vistor_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left|top"
        android:layout_marginLeft="30.0px"
        android:layout_marginTop="30.0px"
        android:text="@string/login_vistor_view"
        android:textSize="@dimen/font_size_medium_50"
        android:textColor="@color/white" />

</FrameLayout>
 
 

相关推荐