アンドロイドの gui 作成なんて怖くない!

37
アアアアアアア GUI アアアアアアアアアIn 第 5 第第第第 第第 / 第第第第第第第第 Android 第第第 201007 at 2010/07/15(sut) 第第第第

Upload: gita

Post on 05-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

アンドロイドの GUI 作成なんて怖くない!. In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 201007 at 2010/07/15(sut) 夜子まま. 自己紹介. ハンドルネーム 夜子まま Android 暦  4 ヶ月 マーケット登録  5 個 Java 暦 10 年ちょい 主にオープン系 JWS を3年ほど. 目次. 前説 レイアウトの説明 よく使うレイアウトを三つほど 配置で使えるテクニックの紹介 クラスの作成 Activity の説明 ライフサイクル ListView の説明 あと何か. 前置き. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: アンドロイドの GUI 作成なんて怖くない!

アンドロイドの GUI 作成なんて怖くない!

In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 201007

at 2010/07/15(sut)           

夜子まま

Page 2: アンドロイドの GUI 作成なんて怖くない!

自己紹介ハンドルネーム 夜子ままAndroid 暦  4 ヶ月マーケット登録  5 個Java 暦 10 年ちょい主にオープン系JWS を3年ほど

Page 3: アンドロイドの GUI 作成なんて怖くない!

目次 前説 レイアウトの説明

よく使うレイアウトを三つほど配置で使えるテクニックの紹介

クラスの作成Activity の説明ライフサイクル

ListView の説明 あと何か

Page 4: アンドロイドの GUI 作成なんて怖くない!

前置き

癖のある GUI 作成

Swing

Eclipse

HTML

Page 5: アンドロイドの GUI 作成なんて怖くない!

説明開始

では早速 いってみましょう

Page 6: アンドロイドの GUI 作成なんて怖くない!

画面を作る流れ1 レイアウトファイル

を作成する

2  Activity を継承したクラスを作成する

3 作ったクラスを AndroidManifest.xml に定義する

Page 7: アンドロイドの GUI 作成なんて怖くない!

アプリを構成するファイルたち

layout

src

マニフェスト

values

drawableR

gen

assets

apk

Page 8: アンドロイドの GUI 作成なんて怖くない!

まずは画面デザインから Button  ・・・ ボタン CheckBox  ・・・ チェックボックス EditText  ・・・ 編集ボックス RadioButton  ・・・ ラジオボタン ImageButton  ・・・ イメージボタン Spinner  ・・・ すぴなー Seekbar  ・・・ シークバー ZoomControls  ・・・ ズームコント

ロール

Page 9: アンドロイドの GUI 作成なんて怖くない!

レイアウトをマスターしなきゃ始まらない LinerLayout  ・・・ 連続して並べる配置 TableLayout  ・・・ 行・列揃えした配置 FrameLayout  ・・・ 重ねた配置 RelativeLayout  ・・・ 相関した配置 AbsoluteLayout  ・・・ 絶対座標の配置

dip ( デバイスに依存しないピクセル ) sp ( 拡大縮小されたピクセル、テキストサイズに最

適 )

Page 10: アンドロイドの GUI 作成なんて怖くない!

よく使うレイアウト( LinerLayout)<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello" /></LinearLayout>

Page 11: アンドロイドの GUI 作成なんて怖くない!

よく使うレイアウト( TableLayout)

<TableLayoutandroid:layout_width="wrap_content" android:layout_height="wrap_content"><TableRow><TableRow><EditText android:text="test" android:layout_width="wrap_content" android:layout_height="wrap_content" /></TableRow></TableLayout>

Page 12: アンドロイドの GUI 作成なんて怖くない!

よく使うレイアウト( FrameLayout)

<FrameLayout android:id="@+id/FrameLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"><ImageView android:src="@drawable/penguins"android:scaleType="fitStart"android:layout_width="wrap_content" android:layout_height="wrap_content" /><TextView android:text=" あいうえお "android:layout_marginTop="10dip"android:textSize="40sp"android:layout_width="wrap_content" android:layout_height="wrap_content" /></FrameLayout>

Page 13: アンドロイドの GUI 作成なんて怖くない!

レイアウト配置テクニック1gravity をつかって位置合わせ

<LinearLayout android:orientation="horizontal" android:gravity="center_horizontal" android:layout_width="fill_parent "  android:layout_height=“fill_parent”   ><Button android:text=" ボタン " android:layout_gravity="right"android:layout_width="wrap_content" android:layout_height="wrap_content" />

</LinearLayout>

Left Right

Bottom

Top

center_vertical

center_horizontal

fill

android:layout_gravity

android:gravity

の使い分け

Page 14: アンドロイドの GUI 作成なんて怖くない!

レイアウト配置テクニック2Weight をつかって均等貼り付け<Button android:text="test1" android:layout_weight="1"android:layout_width="wrap_content" android:layout_height="wrap_content" /><Button android:text="test2" android:layout_weight="1"android:layout_width="wrap_content" android:layout_height="wrap_content" /><Button android:text="test3" android:layout_weight="1"android:layout_width="wrap_content" android:layout_height="wrap_content" />

Page 15: アンドロイドの GUI 作成なんて怖くない!

レイアウト配置テクニック3スペーサーを使う

<LinearLayoutandroid:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="test1" android:layout_width="wrap_content" android:layout_height="wrap_content" /><LinearLayoutandroid:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="test3" android:layout_width="wrap_content" android:layout_height="wrap_content" /><LinearLayoutandroid:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

次は ListView

Page 16: アンドロイドの GUI 作成なんて怖くない!

レイアウトを作ったら? Activity  ・・・ 画面の基本 PreferenceActivity  ・・・ 設定画

面 TabActivity  ・・・ タブ画面 ListActivity  ・・・ リスト画面 Etc  ・・・ 

Page 17: アンドロイドの GUI 作成なんて怖くない!

Activity のライフサイクル開始

onCreate

onResume

実行中

onPause

onStop

onDestory

終了onRestart

onStart

Back ボタンや他のActivity が表示される

長時間表示されない

回転すると一旦 Destory される

onRestoreInstanceState

onSaveInstanceState

Home は stop まで

Page 18: アンドロイドの GUI 作成なんて怖くない!

処理を実装しよう OnCreate で初期化処理 OnResume で設定処理 Button イベントで処理を実装

@Overridepublic void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);

   setContentView(R.layout.people_list);

   srchText = (EditText) this.findViewById(R.id.srchText);   srchText.setOnLongClickListener(new   OnLongClickListener() {   @Override   public boolean onLongClick(View v) {     srchText.setText("");     return false;   }});}

Page 19: アンドロイドの GUI 作成なんて怖くない!

ListView を制するもの Andorid を制す

ListView はほとんどのアプリで利用します、だけど難しいんだよね。

Page 20: アンドロイドの GUI 作成なんて怖くない!

ListView を構成するクラス ListView Adapter

BaseAdapter ・・・ アダプターの抽象クラスCursorAdapter  ・・・  Cursor をもつアダプターArrayAdapter  ・・・ 任意のリストのアダプターSimpleAdapter  ・・・ 基本的なアダプター

BinderSimpleAdapter 等の拡張

Page 21: アンドロイドの GUI 作成なんて怖くない!

ListView のカスタマイズAdapter の getView で表示する View を生成する。LayoutInflater   layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

からの

public View getView(int position, View view, ViewGroup parent) {

Peopleinfo inf = this.getItem(position);

if (view == null) { view = layoutInflater.inflate(R.layout.fortune_row, null);}

@Overridepublic View newView(Context context, Cursor cursor, ViewGroup parent) {return null;}

CursorView の場合はこっち

Page 22: アンドロイドの GUI 作成なんて怖くない!

ListView の動作

AdaptergetView

Page 23: アンドロイドの GUI 作成なんて怖くない!

ListView でコレを使いこなせ

public void setTag (Object tag)public void setTag (int key, Object tag)public Object getTag ()public Object getTag (int key)

ListView

Event 処理

Page 24: アンドロイドの GUI 作成なんて怖くない!

ListView の前後につけるもの HeaderView と FooterView

使い道?

もっと読む や、 読み込み中 等

LayoutInflater   layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

からの

view = layoutInflater.inflate(R.layout.fortune_row, null);

Page 25: アンドロイドの GUI 作成なんて怖くない!

時間確認

時間は?

Page 26: アンドロイドの GUI 作成なんて怖くない!

時間確認

まだある

Page 27: アンドロイドの GUI 作成なんて怖くない!

総合演習

最後にまとめとしてアプリを作りたいと思います

Page 28: アンドロイドの GUI 作成なんて怖くない!

総合演習

今日のためにとっておきのアプリを準備しました

Page 29: アンドロイドの GUI 作成なんて怖くない!

総合演習

その名も!

Page 30: アンドロイドの GUI 作成なんて怖くない!

総合演習

告白スイッチ!!

Page 31: アンドロイドの GUI 作成なんて怖くない!

アプリをつくっちゃお

1 誰でも告白できる2 まさかのときでも3 だから安心4 とにかく迷わない

Page 32: アンドロイドの GUI 作成なんて怖くない!

アプリをつくっちゃお

それでは作りましょうまずは画面デザインから

Page 33: アンドロイドの GUI 作成なんて怖くない!

アプリをつくっちゃお

main.xml

Page 34: アンドロイドの GUI 作成なんて怖くない!

アプリをつくっちゃおKokuhakuAct.java

Page 35: アンドロイドの GUI 作成なんて怖くない!

アプリをつくっちゃおAndroidManifest.xml

Page 36: アンドロイドの GUI 作成なんて怖くない!

完成!

Page 37: アンドロイドの GUI 作成なんて怖くない!

質問があれば

質問受付中