鍍金池/ 教程/ Android/ Android RelativeLayout
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實(shí)例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android RelativeLayout

Android 的 RelativeLayout 可以指定子視圖如何彼此相對定位。每個(gè)視圖的位置可以被指定為相對于同級元素或相對于父視圖。

RelativeLayout 屬性

以下是RelativeLayout 具體的屬性:

屬性 描述
android:id 這是布局的唯一標(biāo)識ID。
android:gravity 這指定對象應(yīng)該如何定位它的內(nèi)容,無論是X軸和Y軸??赡艿闹凳莟op, bottom, left, right, center, center_vertical, center_horizontal等。
android:ignoreGravity 這表示什么視圖應(yīng)該不受到重力影響。

使用RelativeLayout可以調(diào)整兩個(gè)元素右邊界或使一個(gè)下面跟著另一個(gè)視圖,居中于屏幕上,中心,左側(cè)等等。默認(rèn)情況下,所有子視圖都在左上角的布局,所以必須定義使用RelativeLayout.LayoutParams和一些重要屬性的布局屬性,每個(gè)視圖的位置如下給出:

屬性 描述
android:layout_above 位置上面給定錨點(diǎn)視圖ID此視圖的底部邊緣,必須引用另一個(gè)資源,在形式 "@[+][package:]type:name"
android:layout_alignBottom 使得此視圖的底部邊緣匹配給定的錨點(diǎn)視圖ID的底邊和必須是引用到另一個(gè)資源,在形式 "@[+][package:]type:name".
android:layout_alignLeft 使得此視圖的左邊緣匹配給定的錨點(diǎn)視圖ID的左邊緣,并且必須是一個(gè)參考到另一個(gè)資源,在形式 "@[+][package:]type:name".
android:layout_alignParentBottom 如果為true,使得此視圖的底邊緣相匹配的父的底部邊緣。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_alignParentEnd 如果為true,使得此視圖的端部邊緣相匹配的父的端部邊緣。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_alignParentLeft 如果為true,使得此視圖的左邊緣匹配父的左邊緣。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_alignParentRight 如果為true,使得此視圖的右邊緣匹配父的右邊緣。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_alignParentStart 如果為true,使得此視圖開始邊緣匹配父的開始邊緣。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_alignParentTop 如果為true,使得此視圖的頂部邊緣相匹配的父的頂部邊緣。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_alignRight 使得此視圖的右邊緣匹配給定的錨點(diǎn)視圖ID的右邊緣,并且必須是一個(gè)引用另一個(gè)資源,在形式 "@[+][package:]type:name".
android:layout_alignStart 使得此視圖開始邊緣的匹配給定的錨點(diǎn)視圖ID開始邊緣,必須引用另一個(gè)資源,在表格 "@[+][package:]type:name".
android:layout_alignTop 使得此視圖的頂部邊緣匹配給定的錨點(diǎn)視圖ID的頂邊緣,并且必須是一個(gè)引用到另一個(gè)資源,在形式 "@[+][package:]type:name".
android:layout_below 定位此視圖低于給定錨點(diǎn)視圖ID的頂邊緣,并且必須是一個(gè)引用到另一個(gè)資源,在形式 "@[+][package:]type:name".
android:layout_centerHorizontal 如果為true,中心這個(gè)子視圖水平在其父之內(nèi)。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_centerInParent 如果為true,使此子視圖中心水平和垂直其父之內(nèi)。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_centerVertical 如果為true,該中心子垂直在其父之內(nèi)。必須是一個(gè)布爾值,要么“true”或“false”。
android:layout_toEndOf 此視圖給定錨點(diǎn)視圖ID結(jié)束邊緣位置,必須引用另一個(gè)資源,在格式 "@[+][package:]type:name".
android:layout_toLeftOf 此視圖給定錨點(diǎn)視圖ID的左邊的右邊位置,必須做個(gè)參考其他資源,在形式 "@[+][package:]type:name".
android:layout_toRightOf 定位此視圖為給定的錨點(diǎn)視圖ID的右左邊緣和必須是引用到另一個(gè)資源,在形式 "@[+][package:]type:name".
android:layout_toStartOf 定位此視圖為給定的錨點(diǎn)視圖ID的開始的端部邊緣,并且必須是一個(gè)引用到另一個(gè)資源,在形式 "@[+][package:]type:name".

示例

這個(gè)例子將通過簡單的步驟顯示了如何創(chuàng)建Android應(yīng)用程序使用相對布局。按照下面的步驟來創(chuàng)建Android應(yīng)用程序示例:

步驟 描述
1 使用Eclipse IDE創(chuàng)建Android應(yīng)用程序,在包 com.yiibai.relativelayout 下創(chuàng)建一個(gè)應(yīng)用示例項(xiàng)目:RelativeLayout
2 修改 res/layout/activity_main.xml 文件的默認(rèn)內(nèi)容以包括幾個(gè)部件在相對布局。
3 定義所需的常量在 res/values/strings.xml 文件中
4 運(yùn)行該應(yīng)用程序后啟動Android模擬器并驗(yàn)證應(yīng)用程序的結(jié)果。

以下是內(nèi)容修改主activity文件 src/com.yiibai.helloworld/MainActivity.java。這個(gè)文件可以包括每個(gè)生命周期的基本方法。

package com.example.helloworld;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.os.Bundle;
import android.app.Activity;
import android.text.format.DateFormat;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        Date date = new Date();
    	String nowDate = dateFormat.format(date);
    	TextView dateView =  (TextView)findViewById(R.id.dates);
    	dateView.setText(nowDate);
    	
        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
    	String nowTime = timeFormat.format(date);
    	TextView timeView =  (TextView)findViewById(R.id.times);
    	timeView.setText(nowTime);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu;
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

res/layout/activity_main.xml 文件的內(nèi)容如下: