コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Androidアプリ入門 No.36 RelativeLayoutの基本

RelativeLayout

RelativeLayoutの基本

RealativeLayoutの主な属性は以下にとなる。

属性 説明
layout_alignParentTop 親コンテナの上端にレイアウトする。
layout_alignParentBottom 親コンテナの下端にレイアウトする。
layout_alignParentLeft 親コンテナの左端にレイアウトする。
layout_alignParentRight 親コンテナの右端にレイアウトする。
layout_centerHorizontal 親コンテナの水平方向の中央にレイアウトする。
layout_centerVertical 親コンテナの垂直方向の中央にレイアウトする。
layout_centerInParent 親コンテナの中央にレイアウトする。

一通りの内容を確認できるサンプルは以下となる。まずは、strings.xmlでスタイルを定義する。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">ActivityTest</string>

    <style name="CodeFont">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:background">#fff</item>
        <item name="android:textColor">#000</item>
        <item name="android:textSize">26sp</item>        
    </style>
</resources>

次に実際にレイアウトをする。main.xmlを以下のようにする。TextViewの文字列とレイアウトを合わせて設定している。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
        style="@style/CodeFont"
        android:text="右下"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        />
    <TextView
        style="@style/CodeFont"
        android:text="右"
        android:layout_alignParentRight="true"
        />
    <TextView
        style="@style/CodeFont"
        android:text="上横中"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        />
    <TextView
        style="@style/CodeFont"
        android:text="左縦中"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        />
    <TextView
        style="@style/CodeFont"
        android:text="真ん中"
        android:layout_centerInParent="true"
        />
</RelativeLayout>

最後にMainActivity.java。いつも通り何もしていない。

package sample.at;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

実行結果は以下。