Android FrameLayout

框架佈局(FrameLayout)的目的是阻止一個區域在螢幕上顯示一個單一的專案。一般情況下,FrameLayout用於保存單個子視圖,因為它可能很難組織子視圖,擴展到不同的螢幕尺寸子視圖不會互相重疊。

但是,可以添加多個子FrameLayout,每個子視圖控制它們的位置在FrameLayout 分配的比重,使用 android:layout_gravity 屬性。

FrameLayout 屬性

以下是具體的 FrameLayout 重要的屬性:

屬性 描述
android:id 這是唯一標識的佈局的ID。
android:foreground 這定義了可繪製繪製在內容和可能的值可以是一個顏色值,在形式"#rgb", "#argb", "#rrggbb", or "#aarrggbb".
android:foregroundGravity 定義了重力施加到前景可拉伸。gravity默認填補。可能的值為 top, bottom, left, right, center, center_vertical, center_horizontal等.
android:measureAllChildren 確定是否來衡量所有子或只是測量時,那些在VISIBLE或INVISIBLE狀態。默認為false。

示例

這個例子將通過簡單的步驟顯示如何使用框架佈局(FrameLayout創建自己的Android應用程式。按照下麵的步驟來創建一個Android應用程式專案:FrameLayout

步驟 描述
1 使用Eclipse IDE創建Android應用程式,在包com.zaixian.helloworld下創建一個命名為 FrameLayout 的專案。
2 修改res/layout/activity_main.xml檔的默認內容以包括幾個部件使用框架佈局。
3 在res/values/strings.xml檔中定義所需的常量
4 運行該應用程式啟動Android模擬器並驗證應用程式所運行的結果。

以下是內容是主活動檔src/com.zaixian.helloworld/MainActivity.java。這個檔可以包括每個的基本生命週期方法。

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 檔的內容:

<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 內容定義兩個常量:

<?xml version="1.0" encoding="utf-8"?>
<resources>

   <string name="app_name">FrameLayout</string>
   <string name="action_settings">Settings</string>

</resources>

讓我們嘗試運行修改後的 FrameLayout 應用程式,如果設置和應用都沒有問題,它會顯示以下模擬器窗口:

Android Frame Layout
 

上一篇: Android AbsoluteLayout 下一篇: Android ListView