5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。

Slides:



Advertisements
Similar presentations
5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android.
Advertisements

オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
8-4 Google マップの利用 1.地図を表示 ( エミュレータでも可能 ) Android API キーを取得しておくこと。 【 AndroidManifest.xml 】 ・・・
アンドロイドの GUI 作成なんて怖くな い! In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 at 2010/07/15(sut) 夜子まま.
マルチフォーム BCB では親 Form から子 Form を呼び出す ことが出来る。 Unit1.cpp に子 From のヘッダー Unit2.h を インクルードしておく 親 Form から子 Form のメソッド –Show() –ShowModal() を使うことで呼び出せる。
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
社会人学習講座 「Javaプログラミング概論」
エクセル(1)の目次 起動法、ブック、シート、セル ブックの開き方 エクセル画面 マウスポインターの種類 シート数の調節 データの入力法
GridLayout オブジェクト(省略)
情報処理 第8回.
創造工学設計I 電子情報工学科4年(前期) 12回目 (09/07/2015) 担当 古山彰一 ac
Copyright by Rich & Giro
4月卒研報告              上藤紳也.
5-4 画像の表示 (1)複数画像の表示 A.手順 (基本は5-2(1)Image View参照) ①画像ファイルをリソースに追加
Imagio カンタン文書登録V2 画面シミュレーション.
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
Applet 岡部 祐典 鈴木 敬幸.
GPSはじめの第一歩 Android編 2009/03/28 山本 慎也.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
5-3 図形の描画 (1)図形を表示する手順 ①実画面に表示するクラスを作成する。
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
JAVA GUIプログラミング 第6回 TextFieldとLabel.
C#によるWindowsFormApplication入門
8-2 センサ関係 1.センサの種類 種類センサの内容 TYPE_ACCELEROMETER 加速度センサ TYPE_MAGNETIC_FIELD 地磁気センサ TYPE_PROXIMITY 近接センサ TYPE_TEMPATURE 温度センサ TYPE_LIGHT 照明センサ TYPE_GRAVITY.
アプレット (Applet)について.
エクセル(1)の目次 起動法、ブック、シート、セル ブックの開き方 エクセル画面 マウスポインターの種類 シート数の調節 データの入力法
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
Androidソースコード公開後のJNI
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
4.Eclipseの基本操作 4-1 Eclipseの起動
PBLソフトウェア班 ~ペイントアプリケーション開発~ 安藤 貴哉 小木曽 太紀
プログラミング演習3 第2回 GUIの復習.
Unity, C# 移動するモデルの位置を 指定した位置へ自動修正
Unity, C# シーン移動と1人称視点.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
Borland Delphi 6 でビジュアルプログラミング
JAVA入門後期⑨ JAVAのSwingのメニュー処理
アルゴリズムとプログラミング (Algorithms and Programming)
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀.
日本Androidの会 事務局長 SIPropプロジェクト 代表 グロースエクスパートナーズ 今村 謙之(いまむら のりつな)
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミングⅠ 平成30年10月22日 森田 彦.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
Annotation EJB 3.0 コース 第3回 2006年8月4日.
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
第5回 プログラミングⅡ 第5回
pf-5. 関数呼び出し,スコープ (Python プログラミング基礎を演習で学ぶシリーズ)
演算子のオーバーロード.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
5-2 基本的なウィジェット (1)Toggle Button A. 配置
7.アプリケーションの連携 7-1 インテント(intent) 1.アプリケーションの連携とは
7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 …
6.ユーザ定義型.
5-6 SurfaceView による高速描画 (1)SurfaceViewを使う A. SurfaceView とは
5-5 文字列の描画 (1)基本的な文字列描画 A.手順
Presentation transcript:

5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。 5.基本API 5-1 レイアウト ①Line Layout(Vertical) ②Line Layout(Horizontal) ③Relative Layout ④Frame Layout ⑤Include Other Layout ⑥Fragment ⑦Table Layout ⑧Table Row なお、Absolute Layoutは プログラムで指定

パレットのそれぞれをドラッグ (Absoluteを除く) (1)主なレイアウト指定 Line Layout(Vertical) Line Layout(Horizontal) Relative Layout 9:00 9:00 9:00 (0) (1) (2) (0) (0) (1) 0の下 (2) 1の右 (1) (3) 2の下 (2) (3) Frame Layout Table Layout Absolute Layout 9:00 9:00 9:00 ヘッダ (0, 0) (1, 0) (2, 0) 40 (0, 1 (1, 1) (2, 1) (20, 40) 120 (0, 2) (1, 2) (2, 2) (0,3) (1, 3) (2, 3) (20, 120) フッタ 20

(2)簡単な例(4.2節の例に新しいボタンウィジェットを追加) A. Linear Layout(Horizontal)の配置 ①ここで左ボタンを 押して クリックしたまま ②左ボタンを離すと 青い枠線が表示される。 (ドラッギングしているところ)

B. ウィジェットの移動 ①移動したいウィジェットをLinear Layout(Horizontal)の青色枠線内にドラッギング。 ②左ボタンを離すと青い枠線内にウィジェットが移動している。 ①移動したいウィジェット を選んで押したまま ②左ボタンを離すと 青い枠線が表示される。 (ドラッギングしているところ)

C. 新しいボタンウィジェットを配置 ①移動したいウィジェットをLinear Layout(Horizontal)の青色枠線内にドラッギング。 ②配置が終わったら、右ボタンをクリックしてポップアップメニューから、「表示」「プロパティ」を選択してプロパティリストを表示しておく。 ②左ボタンを離すと 青い枠線が表示される。 ①配置したいウィジェットを ドラッギング

D. 「On Click」プロパティにイベントハンドラの関数名を入力  (最初のボタンのイベントハンドラと異なる関数名にする) ①イベントハンドラの関数名入力

E. ソースプログラムの入力 package jp.Eclipse; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Gravity; import android.widget.TextView; import android.widget.Toast; public class Test01Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onAction(View view){ TextView text1=(TextView)this.findViewById(R.id.text1); text1.setText("OK!"); public void onAction2(View view){ Toast myToast=Toast.makeText(this,“トーストで表示”, Toast.LENGTH_LONG); myToast.setGravity(Gravity.CENTER,0,0); myToast.show();

F. 実行(2.4参照) 左のボタンをクリックしたときと、右のボタンをクリックしたときの 動きが異なることに注意。

(3)動的なレイアウト A. プログラム例(必ずしもXMLは必要ない) package jp.eclips; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.*; public class NonXMLActivity extends Activity { private TextView text1; private EditText edit1; private Button button1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Activity activity = this; // ListView の生成と配置 LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); this.setContentView(layout); // TextView の生成と配置 text1 = new TextView(this); text1.setText("動的ウィジェットの配置"); text1.setTextSize(20); layout.addView(text1); // EditText の生成と配置 edit1 = new EditText(this); edit1.setTextSize(20); layout.addView(edit1); // Button の生成と配置 button1 = new Button(this); button1.setText("ここをクリック"); layout.addView(button1); // ボタンのイベント処理 button1.setOnClickListener (new View.OnClickListener() { public void onClick(View v) { Toast toast=Toast.makeText(activity, “入力文字列 : ” + edit1.getText(), Toast.LENGTH_LONG); toast.show(); } });

B. 実行例 実行しているところ

C. レイアウトファイルが用意されている理由 ①画面デザインをやりやすくするため。 ②レイアウトを修正するのにプログラムを修正する必要がない。 ③通常は、画面デザインはデザイナーに、コードはプログラマにと作業分担することが多い。

(4)イベントリスナによるイベント処理 A. イベントリスナを使う ① 「On click」プロパティにメソッド名を設定する方法では、On Clickイベント以外が使えない。 ② 本来のJavaのイベント処理は、イベントリスナを定義して組み込むという方法(デリゲートイベントモデル)である。 ③ Androidの場合、クリック時のイベントハンドラは、Viewクラスの内部インターフェースとして組み込まれているので、以下をimportする。       android.view.View.OnClickListener ④ イベントハンドラのメソッドは以下のとおり。       public void onClick(View v){       /* クリックのとき実行する処理 */ } ⑤ 次のようにして組み込む   [ウィジェット】.setOnClickListener(【View.OnClickListener】);

B. 組み込み例 (「On Click」プロパティは消去) package jp.eclipse; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class ListenerTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Activity activity =this; Button button = (Button)this.findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast toast = Toast.makeText(activity,“リスナによる実行”, Toast.LENGTH_LONG); toast.show(); } }); } B. 組み込み例 (「On Click」プロパティは消去)

C. 実行例 Java 1.6で実行すること

(5)リスナクラスを実装する方法 A. 方法の手順 ① リスナクラスを「implements」で実装する。 ② そのリスナをボタンのリスナとして登録する。 Public void onCreate(・・・){   ・   【ウィジェット】.setOnClickListener(new 【リスナクラス名】()); } class 【リスナクラス名】 implements OnClickListener{ public void onClick(View v){ /* クリックされたときの処理 */ リスナ登録 ボタンがクリックされたとき 呼び出されるメソッド リスナクラスの宣言

B. 組み込み例(その1) (例は動的配置とくみあわせている) package jp.eclipse; import android.app.Activity; import android.os.Bundle; import android.view.*; import android.view.View.OnClickListener; import android.widget.*; public class ImplementSampleActivity extends Activity { /** Called when the activity is first created. */ TextView textV; Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); textV=new TextView(this); textV.setText("いらっしゃいませ!こんにちは"); button=new Button(this); button.setText("注文"); LL.addView(textV); LL.addView(button); button.setOnClickListener(new buttonClickListener()); } B. 組み込み例(その1) (例は動的配置とくみあわせている)

組み込み例(その2) (例は動的配置とくみあわせている)   class buttonClickListener implements OnClickListener{ public void onClick(View v){ textV.setText("ご注文ありがとうございます。"); }

C. 実行例 Java 1.6で実行すること