框架布局(FrameLayout)的目的是阻止一個(gè)區(qū)域在屏幕上顯示一個(gè)單一的項(xiàng)目。一般情況下,F(xiàn)rameLayout用于保存單個(gè)子視圖,因?yàn)樗赡芎茈y組織子視圖,擴(kuò)展到不同的屏幕尺寸子視圖不會(huì)互相重疊。
但是,可以添加多個(gè)子FrameLayout,每個(gè)子視圖控制它們的位置在FrameLayout 分配的比重,使用 android:layout_gravity 屬性。
以下是具體的 FrameLayout 重要的屬性:
| 屬性 | 描述 |
|---|---|
| android:id | 這是唯一標(biāo)識(shí)的布局的ID。 |
| android:foreground | 這定義了可繪制繪制在內(nèi)容和可能的值可以是一個(gè)顏色值,在形式"#rgb", "#argb", "#rrggbb", or "#aarrggbb". |
| android:foregroundGravity | 定義了重力施加到前景可拉伸。gravity默認(rèn)填補(bǔ)??赡艿闹禐?top, bottom, left, right, center, center_vertical, center_horizontal等. |
| android:measureAllChildren | 確定是否來(lái)衡量所有子或只是測(cè)量時(shí),那些在VISIBLE或INVISIBLE狀態(tài)。默認(rèn)為false。 |
這個(gè)例子將通過(guò)簡(jiǎn)單的步驟顯示如何使用框架布局(FrameLayout)創(chuàng)建自己的Android應(yīng)用程序。按照下面的步驟來(lái)創(chuàng)建一個(gè)Android應(yīng)用程序項(xiàng)目:FrameLayout
| 步驟 | 描述 |
|---|---|
| 1 | 使用Eclipse IDE創(chuàng)建Android應(yīng)用程序,在包c(diǎn)om.yiibai.helloworld下創(chuàng)建一個(gè)命名為 FrameLayout 的項(xiàng)目。 |
| 2 | 修改res/layout/activity_main.xml文件的默認(rèn)內(nèi)容以包括幾個(gè)部件使用框架布局。 |
| 3 | 在res/values/strings.xml文件中定義所需的常量 |
| 4 | 運(yùn)行該應(yīng)用程序啟動(dòng)Android模擬器并驗(yàn)證應(yīng)用程序所運(yùn)行的結(jié)果。 |
以下是內(nèi)容是主活動(dòng)文件src/com.yiibai.helloworld/MainActivity.java。這個(gè)文件可以包括每個(gè)的基本生命周期方法。
package com.example.helloworld; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
以下是 res/layout/activity_main.xml 文件的內(nèi)容:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:src="@drawable/ic_launcher" android:scaleType="fitCenter" android:layout_height="250px" android:layout_width="250px"/> <TextView android:text="Frame Demo" android:textSize="30px" android:textStyle="bold" android:layout_height="fill_parent" android:layout_width="fill_parent" android:gravity="center"/> </FrameLayout>
以下是文件 res/values/strings.xml 內(nèi)容定義兩個(gè)常量:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">FrameLayout</string> <string name="action_settings">Settings</string> </resources>
讓我們嘗試運(yùn)行修改后的 FrameLayout 應(yīng)用程序,如果設(shè)置和應(yīng)用都沒(méi)有問(wèn)題,它會(huì)顯示以下模擬器窗口: