Android布局之FrameLayout
FrameLayout介绍
所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的组件。默认组件都在靠左上角放置,但是我们可以通过 “layout_gravity”和 "layout_margin..."结合来设置控件的摆放位置
使用场景
FrameLayout看起来比较简单,但对于初学的人来说不是很好理解,显的比较神秘,能用好的话必需得多实践下。
使用场景:当应用的界面上有层叠的控件时,这时我们需要用到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实现),可以左右滑动功换广告图片,在这个轮播图上面有“微信登录”、“注册”、“登录”等按扭。
代码实现:
<?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>