戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

相対指定レイアウト:RelativeLayout

RelativeLayout はボタンなどのウィジェットを相対的に位置指定して配置できるレイアウトです。

API Reference: RelativeLayout

■ 画面イメージ -----------------------------------------------
android_RelativeLayout.png

右のボタンのように、相対指定していないウィジェットがあると重なります。

■ XMLで定義 --------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"">
<Button android:id="@+id/btnCenter"
android:text="Center"
android:layout_centerInParent="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<Button android:id="@+id/btnTop"
android:text="Top"
android:layout_alignParentTop="true"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<Button android:id="@+id/btnLeft"
android:text="Left"
android:layout_alignParentLeft="true"
android:layout_below="@+id/btnTop"
android:layout_above="@+id/btnBottom"
android:layout_height="match_parent"
android:layout_width="wrap_content" />
<Button android:id="@+id/btnRight"
android:text="Right"
android:layout_alignParentRight="true"
android:layout_height="match_parent"
android:layout_width="wrap_content" />
<Button android:id="@+id/btnBottom"
android:text="Bottom"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<Button android:id="@+id/btnRelative"
android:text="Relative"
android:layout_toRightOf="@+id/btnCenter"
android:layout_below="@+id/btnCenter"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</RelativeLayout>


■ ソースコードで定義 -----------------------------------------
package jp.inujirushi.sample.activity;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.RelativeLayout;

public class RelativeLayoutActivity extends Activity {
/** アクティビティを生成した時に呼ばれます。 */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// ボタンのIDを定義する
final int ID_CENTER = 1;
final int ID_TOP = 2;
final int ID_LEFT = 3;
final int ID_RIGHT = 4;
final int ID_BOTTOM = 5;
final int ID_RELATIVE = 6;

// リレイティブレイアウトを生成する
RelativeLayout layout = new RelativeLayout(this);

// 中央ボタンを生成する
Button btnCenter = new Button(this);
btnCenter.setId(ID_CENTER);
btnCenter.setText("Center");
RelativeLayout.LayoutParams prmCenter = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
prmCenter.addRule(RelativeLayout.CENTER_IN_PARENT);
btnCenter.setLayoutParams(prmCenter);
layout.addView(btnCenter);

// 上ボタンを生成する
Button btnTop = new Button(this);
btnTop.setId(ID_TOP);
btnTop.setText("Top");
RelativeLayout.LayoutParams prmTop = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
prmTop.addRule(RelativeLayout.ALIGN_PARENT_TOP);
btnTop.setLayoutParams(prmTop);
layout.addView(btnTop);

// 左ボタンを生成する
Button btnLeft = new Button(this);
btnLeft.setId(ID_LEFT);
btnLeft.setText("Left");
RelativeLayout.LayoutParams prmLeft = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
prmLeft.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
prmLeft.addRule(RelativeLayout.BELOW, ID_TOP);
prmLeft.addRule(RelativeLayout.ABOVE, ID_BOTTOM);
btnLeft.setLayoutParams(prmLeft);
layout.addView(btnLeft);

// 右ボタンを生成する
Button btnRight = new Button(this);
btnRight.setId(ID_RIGHT);
btnRight.setText("Right");
RelativeLayout.LayoutParams prmRight = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
prmRight.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
btnRight.setLayoutParams(prmRight);
layout.addView(btnRight);

// 下ボタンを生成する
Button btnBottom = new Button(this);
btnBottom.setId(ID_BOTTOM);
btnBottom.setText("Bottom");
RelativeLayout.LayoutParams prmBottom = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
prmBottom.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
btnBottom.setLayoutParams(prmBottom);
layout.addView(btnBottom);

// 中央の右下にボタンを生成する
Button btnRelative = new Button(this);
btnRelative.setId(ID_RELATIVE);
btnRelative.setText("Relative");
RelativeLayout.LayoutParams prmRelative = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
prmRelative.addRule(RelativeLayout.BELOW, ID_CENTER);
prmRelative.addRule(RelativeLayout.RIGHT_OF, ID_CENTER);
btnRelative.setLayoutParams(prmRelative);
layout.addView(btnRelative);

// レイアウトを画面に設定する
setContentView(layout);
}
}
スポンサーサイト

Comments

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。