2-2. TableLayout TableLayout は任意のビューを表形式で配置したい場合に利用する (HTML の Table に近いイメー ジ ) 2-3. FrameLayout ビューを重ねて表示するためのレイアウト 後から配置した部品が前面に来る仕様となっている 3. まとめ レイア

Similar documents
日 力力 生 行行 入 入 力力 生 用 方

非推奨メソッド等の掲載について

mazec テクニカルガイド第5版(Android版)

Microsoft Word - Android_SQLite講座_画面800×1280

例題 3-2 ボタンをクリックしたらタイトルバーにテキストを表示します activity_main.xml <LinearLayout xmlns:android=" android:layout_height="

補足資料 キーイベント処理サンプル package jp.co.keyevent; import android.app.activity; import android.os.bundle; import android.view.keyevent; import android.widget.t

1: Android 2 Android 2.1 Android 4 Activity Android Service ContentProvider BroadcastReceiver Activity ( ): Android 1 Android Service ( ): ContentProv

Prog2_6th

Android View

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

Android Layout SDK プログラミング マニュアル

Java講座

第1章 ビジュアルプログラミング入門

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

作業環境カスタマイズ 機能ガイド(応用編)

日本アンドロイドの会 四国支部 Kickoff ミーティング in ABC2009

Microsoft Word - _Intent.doc

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

データ構造とアルゴリズム論

目次 1 はじめに 利用条件 動作環境 アドインのインストール アドインの操作方法 アドインの実行 Excel CSV の出力 テンプレートの作成 編集 テンプレートのレイアウト変更 特記

第1章 ビジュアルプログラミング入門

目次 概要... 2 フォームレイアウトデザイナー機能の設定... 3 設定したフォームレイアウトデザイナーの確認...14 その他スタイルの設定...15 フォームレイアウトデザイナーをエクスポート...17 フォームレイアウトデザイナーをインポート...18 インポート時の制限事項...19 リ

PowerPoint Presentation

TALON Tips < カレンダー ( 月別 ) の画面を表示する > 株式会社 HOIPOI 第 1.1 版 p. 1

Eclipse 操作方法 (Servlet/JSP 入門補助テキスト)

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

はじめに - マニュアルエディター機能の概要 - Dojoの種類とマニュアルエディター機能解除について マニュアルレイアウトの生成 - マニュアルレイアウトの生成 基本編集 4 - 表紙の挿入 4 - 目次の挿入 5 - 一括変換 6 4 マニュアルビルド 9 4- MS Word 9

Java言語 第1回

Microsoft Word - tutorial3-dbreverse.docx

PowerPoint Presentation

TestDesign for Web

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

はじめに Android は スマートフォンやタブレット PC などの携帯情報端末を主なターゲットとしたプラットフォーム (OS) です Android は 2007 年に Google を中心にした規格団体 Open Handset Alliance から発表され 2008 年から Android

農業・農村基盤図の大字小字コードXML作成 説明書

Java言語 第1回

改訂履歴 日付バージョン記載ページ改訂内容 V2.1 - 初版を発行しました V3.1 P5 ドキュメントラベルが新規追加された事を追記 P7 P8 新しくなったラベルのツリー表示説明を追記 新しくなったラベルの作成 削除操作を追記 P9 ラベルのグループ

Microsoft PowerPoint - Tutorial_2_upd.ppt

Transcription:

1. レイアウトの基本 Android でレイアウトを作成する方法には XML で定義する方法 と プログラム上から作成する方法 の 2 つがある XML で定義する方が読みやすく変更も容易なので 基本的には XML でレイアウトを作成し 動的にレイアウトを変更したい場合にプログラムで記述するのが一般的である 2. レイアウトの種類 ビューを配置するベースとなるレイアウトについて説明する ここで紹介するレイアウト以外にも RelativeLayout( ビュー同士の相対位置で配置 ) AbsoluteLayout( 絶対位置で配置 ) があるのだが ここで説明する 3 つの組み合わせでほとんどのレイアウトが実現できるので この 3 つを覚えておけば十分である ( なお レイアウト画像は Codezine から転載させてもらった ) また レイアウトは入れ子に出来る性質があり 複数のレイアウトを組み合わせる事が可能である 2-1. LinearLayout LinearLayout は任意のビューを縦 / 横方向に直線上に配置するレイアウトである 直線上に並ぶ性 質であるため ビューとビューが重なる事はない 縦方向 ( 左 ) 横方向 ( 右 ) 1

2-2. TableLayout TableLayout は任意のビューを表形式で配置したい場合に利用する (HTML の Table に近いイメー ジ ) 2-3. FrameLayout ビューを重ねて表示するためのレイアウト 後から配置した部品が前面に来る仕様となっている 3. まとめ レイアウトの作成は GUI エディタではなく XML ファイルを直接編集する レイアウトは入れ子に出来るので 複数のレイアウトを組み合わせる事が出来る レイアウトは 3 つだけ覚えておけばよい o LinearLayout 直線上に並べる o TableLayout テーブル上に並べる o FrameLayout ビューとビューを重ねる 2

テーブルレイアウトのサンプル TableLayout は 子を行と列に配置します TableLayout コンテナは 行 列 セルの境界線は表示 しません このテーブルの列の数は セルの数が最も多い行と同じになります テーブルのセルを空 にすることはできますが HTML では可能なセルの結合はできません TableRow オブジェクトは TableLayout の子のビューです ( TableRow はそれぞれそのテーブルの 1 行を定義しています ) それぞれの行は 0 個またはそれより多いセルを持ち さまざまな種類のビューが定義されます ということは 行のセルは ImageView や TextView オブジェクトのような さまざまな View オブジェクトで構成されるかもしれません また それが ViewGroup オブジェクトかもしれません ( 例えば もうひとつの TableLayout をセルとしてネストさせることも可能です ) 以下は 行と列がそれぞれふたつあるレイアウトのサンプルです 隣のスクリーンショットがその結果で セルの境界線は点線で表示しています ( 見れるように追加しました ) <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:stretchcolumns="1"> <TableRow> android:text="@string/table_layout_4_open" android:text="@string/table_layout_4_open_shortcut" 3

</TableRow> android:gravity="right" <TableRow> android:text="@string/table_layout_4_save" android:text="@string/table_layout_4_save_shortcut" android:gravity="right" </TableRow> </TableLayout> 列は隠したり 伸ばして可能な限りスクリーンを埋める設定にしておいたり テーブルがスクリーンに収 まるように 列を強制的に縮む設定にしておくこともできます 詳しくは TableLayout リファレンスの ドキュメントを参照してください 枠線を水平に入れるサンプル <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android " android:layout_height="fill_parent" android:stretchcolumns="1"> <TableRow> android:layout_column="1" 4

android:text="open..." android:text="ctrl-o" android:gravity="right" </TableRow> <TableRow> android:layout_column="1" android:text="save..." android:text="ctrl-s" android:gravity="right" </TableRow> <TableRow> android:layout_column="1" android:text="save As..." android:text="ctrl-shift-s" android:gravity="right" </TableRow> <View android:layout_height="2dip" android:background="#ff909090" /> <TableRow> 5

android:text="x" android:text="import..." </TableRow> <TableRow> android:text="x" android:text="export..." android:text="ctrl-e" android:gravity="right" </TableRow> <View android:layout_height="2dip" android:background="#ff909090" /> <TableRow> android:layout_column="1" android:text="quit" </TableRow> </TableLayout> 6

レイアウトの入れ子設定 概要 LinearLayout を入れ子に設定することにより, 複雑な画面を設計することができるようになります このサンプルは,XML で実現していて,Java ファイルは Eclipse で Android プロジェクトを生成したときに自動生成されるコードから変更しません main.xml を次のように変更します サンプルプログラム <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" 7

android:layout_height="wrap_content"> android:id="@+id/text01" android:text=" テキスト 1" android:textsize="16dip" android:layout_width="100dip" android:layout_height="wrap_content" /> <EditText android:id="@+id/edit01" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_height="fill_parent"> android:id="@+id/text02" android:text=" テキスト 2" android:textsize="16dip" android:layout_width="100dip" android:layout_height="wrap_content" /> <EditText android:id="@+id/edit02" android:layout_height="wrap_content" /> </LinearLayout> 8

</LinearLayout> 実行結果 サンプルプログラムを動作させると, エディットボックスが縦に 2 つ並んだ画面が出力しま す XML ファイルを変更することで, ボタンやチェックボックスを横に並べることもできるよ うになります 親ページスタートページページ一覧ページ履歴最終更新 9

android/ レイアウト / チェックボックスとラジオボタン 概要 チェックボックスとラジオボタンをレイアウトファイルで指定するサンプル 処理内容は ユーザインターフェース / チェックボックスとラジオボタンと同じである 実行結果 手順 1. プロジェクトの作成 Eclipse を起動 ファイル > プロジェクト >Android>Android プロジェクトを選択 以下を設定したら完了ボタ ンを押してプロジェクトを作成する プロジェクト名 CheckRadioLayoutEx ビルド ターゲット Android 1.6 アプリケーション名 CheckRadioLayoutEx パッケージ名 net.easyjp.checkradiolayoutex 通常は自分のドメイン名を逆にしたものを使用する ( 例えば easyjp.net net.easyjp) ここでは適当に決めて構わない CreateActivity CheckRadioLayoutEx ここで指定した名前がプログラム本体のソースファイル名になる Min SDK Version 4 ( ここには 選択したビルド ターゲットの API の数値を入れる [[BR]] 例 : Android 1.6 = 4, Android 2.1 = 7, Android 2.2 = 8 2. レイアウト XML(res/main.xml) の編集 レイアウトファイルを以下のように修正する res/main.xml 10

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android " android:orientation="vertical" android:layout_height="fill_parent" android:background="#ffffff" > <!-- チェックボックス --> <CheckBox android:id="@+id/checkbox" android:layout_height="wrap_content" android:text="@string/checkbox" android:checked="true" android:textcolor="#ff000000" /> <!-- ラジオグループ --> <RadioGroup android:id="@+id/radiogroup" 11

android:layout_height="wrap_content" > <RadioButton android:id="@+id/radio0" android:layout_height="wrap_content" android:text="@string/radio0" android:textcolor="#ff000000" /> <RadioButton android:id="@+id/radio1" android:layout_height="wrap_content" android:text="@string/radio1" android:textcolor="#ff000000" android:checked="true" /> </RadioGroup> 12

<!-- ボタン --> <Button android:id="@+id/button" android:textsize="16sp" android:text="@string/button" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 4.res/string.xml を修正する res/string.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">hello World, CheckRadioLayoutEx!</string> <string name="app_name">checkradiolayoutex</string> <string name="checkbox"> チェックボックス </string> <string name="radio0"> ラジオボタン 0</string> <string name="radio1"> ラジオボタン 1</string> <string name="button"> 結果表示 </string> 13

</resources> 5. CheckRadioLayoutEx.java の修正 CheckRadioLayoutEx.java package net.easyjp.checkradiolayoutex; import android.app.activity; import android.app.alertdialog; import android.content.dialoginterface; import android.os.bundle; import android.view.window; import android.view.view; import android.widget.button; import android.widget.checkbox; import android.widget.radiogroup; import android.widget.radiobutton; public class CheckRadioLayoutEx extends Activity implements View.OnClickListener { private Button button; private CheckBox checkbox; private RadioGroup radiogroup; 14

// 初期化 @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); requestwindowfeature(window.feature_no_title); setcontentview(r.layout.main); button = (Button)findViewById(R.id.button); button.setonclicklistener(this); checkbox = (CheckBox)findViewById(R.id.checkBox); radiogroup = (RadioGroup)findViewById(R.id.radioGroup); } // ボタンのクリックイベント @Override public void onclick(view view) { // チェックボックスとラジオボタンの状態取得 15

// 選択されているラジオボタンを取得 RadioButton radio = (RadioButton)findViewById(radioGroup.getCheckedRadioButto nid()); showdialog(this, " 状態 ", " チェックボックス : " + checkbox.ischecked() + "\n" + " ラジオボタン : " + radio.gettext().tostring()); } // ダイアログの表示 private void showdialog(final Activity activity, String title, String message) { AlertDialog.Builder ad = new AlertDialog.Builder(activity); ad.settitle(title); ad.setmessage(message); ad.setpositivebutton("ok", new DialogInterface.OnClickListener() { which) { public void onclick(dialoginterface dialog, int activity.setresult(activity.result_ok); } }); ad.create(); 16

ad.show(); } } 17