アンドロイドの GUI 作成なんて怖くな い! In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 201007 at 2010/07/15(sut) 夜子まま.

Slides:



Advertisements
Similar presentations
8-4 Google マップの利用 1.地図を表示 ( エミュレータでも可能 ) Android API キーを取得しておくこと。 【 AndroidManifest.xml 】 ・・・
Advertisements

Jsdo.it と Monaca による端末へ のアプリ導入 5/29 (金)課題 堀江美香.
1 Layout Utilities の紹介 Layout Utilities とは、お客様のプログラムに 流し込み印刷を簡単に組み込めるソフトウエア開発ツールです 無償 流し込み印刷の例.
開発者目線でAndroidとiPhoneを比較してみる
アルゴリズムとデータ構造 第2回 線形リスト(復習).
社会人学習講座 「Javaプログラミング概論」
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
GridLayout オブジェクト(省略)
         第9回 Swing.
創造工学設計I 電子情報工学科4年(前期) 12回目 (09/07/2015) 担当 古山彰一 ac
2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ
Copyright by Rich & Giro
4月卒研報告              上藤紳也.
5-4 画像の表示 (1)複数画像の表示 A.手順 (基本は5-2(1)Image View参照) ①画像ファイルをリソースに追加
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
準備しておいて下さい [1] へアクセス [2] project.zipをダウンロード
GPSはじめの第一歩 Android編 2009/03/28 山本 慎也.
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
GUIコンポーネントの設定と配置 Creation and positioning of GUI components
C#によるWindowsFormApplication入門
8-2 センサ関係 1.センサの種類 種類センサの内容 TYPE_ACCELEROMETER 加速度センサ TYPE_MAGNETIC_FIELD 地磁気センサ TYPE_PROXIMITY 近接センサ TYPE_TEMPATURE 温度センサ TYPE_LIGHT 照明センサ TYPE_GRAVITY.
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
プログラミング演習3 第4回 ミニプロジェクト.
RAD Studio 14/09/27 TEffectを使った綺麗なForm
ゲームプログラミング体験演習
システムエンジニアリング演習 GUIの実現(3):Swing 11月20日.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
4.Eclipseの基本操作 4-1 Eclipseの起動
PBLソフトウェア班 ~ペイントアプリケーション開発~ 安藤 貴哉 小木曽 太紀
プログラミング演習3 第2回 GUIの復習.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
Windows Azure (CTP) 触ってみた
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀.
プログラミング演習3 第3回 ミニプロジェクト.
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
ソフトウェア工学 知能情報学部 新田直也.
EclipseでWekaのAPIを呼び出す
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング演習3 第2回 GUIの復習.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
ゲーム開発モデルの基礎.
Java/Swingについて+ (4) 2005年10月26日 海谷 治彦.
・タイプ別のフレームワーク ・デジタルTips(小技テクニック情報)
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
PBLソフトウェア班(S1)  加藤和也  高橋しおり  古川智哉.
Windows Azure (CTP) 触ってみた
アルゴリズムとデータ構造1 2005年7月5日
オブジェクト指向プログラミング クラス 継承
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
ゲームプログラミング体験演習 :30-14:15 九州産業大学 情報科学部 米元.
C#プログラミング実習 第3回.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
アルゴリズムとデータ構造1 2006年6月23日
How To WPF アプリケーション Part4 By 中博俊.
GUI部品とイベント処理の例 マインスィーパもどきの作成 倉敷芸術科学大学 産業科学技術学部 梶浦文夫.
プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学)
5-2 基本的なウィジェット (1)Toggle Button A. 配置
プロジェクト演習Ⅱ インタラクティブゲーム制作
7.アプリケーションの連携 7-1 インテント(intent) 1.アプリケーションの連携とは
7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 …
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
5-6 SurfaceView による高速描画 (1)SurfaceViewを使う A. SurfaceView とは
5-5 文字列の描画 (1)基本的な文字列描画 A.手順
How To WPF アプリケーション Part3 By 中博俊.
Presentation transcript:

アンドロイドの GUI 作成なんて怖くな い! In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 at 2010/07/15(sut) 夜子まま

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

目次  前説  レイアウトの説明 よく使うレイアウトを三つほど 配置で使えるテクニックの紹介  クラスの作成 Activity の説明 ライフサイクル  ListView の説明  あと何か

前置き 癖のある GUI 作成 Swing Eclipse HTML

説明開始 では早速 いってみましょう

画面を作る流れ 1 レイアウトファイル を作成する 2 Activity を継承した クラスを作成する 3 作ったクラスを AndroidManifest.x ml に定義する

アプリを構成するファイルたち layout src マニフェスト values drawable R gen assets apk

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

レイアウトをマスターしなきゃ始まらない  LinerLayout ・・・ 連続して並べる配置  TableLayout ・・・ 行・列揃えした配置  FrameLayout ・・・ 重ねた配置  RelativeLayout ・・・ 相関した配置  AbsoluteLayout ・・・ 絶対座標の配置 dip ( デバイスに依存しないピクセル ) sp ( 拡大縮小されたピクセル、テキストサイズに最 適 )

よく使うレイアウト ( 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" />

よく使うレイアウト ( TableLayout) <TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <EditText android:text="test" android:layout_width="wrap_content" android:layout_height="wrap_content" />

よく使うレイアウト ( FrameLayout) <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView 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" />

レイアウト配置テクニック1 gravity をつかって位置合わせ <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" /> LeftRight Bottom Top center_vertical center_horizontal fill android:layout_gravity と android:gravity の使い分け

レイアウト配置テクニック2 Weight をつかって均等貼り付け <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" />

レイアウト配置テクニック3 スペーサーを使う <LinearLayout android: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" /> <LinearLayout android: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" /> <LinearLayout android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 次は ListView

レイアウトを作ったら?  Activity ・・・ 画面の基本  PreferenceActivity ・・・ 設定 画面  TabActivity ・・・ タブ画面  ListActivity ・・・ リスト画面  Etc ・・・

Activity のライフサイクル 開始 onCreate onResume 実行中 onPause onStop onDestory 終了 onRestart onStart Back ボタンや他の Activity が表示される 長時間表示されない 回転すると一旦 Destory され る onRestoreInstanc eState onSaveInstanceState Home は stop まで

処理を実装しよう  OnCreate で初期化処理  OnResume で設定処理  Button public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.people_list); srchText = (EditText) this.findViewById(R.id.srchText); srchText.setOnLongClickListener(new OnLongClickListener() public boolean onLongClick(View v) { srchText.setText(""); return false; }}); }

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

ListView を構成するクラス  ListView  Adapter BaseAdapter ・・・ アダプターの抽象クラス CursorAdapter ・・・ Cursor をもつアダプター ArrayAdapter ・・・ 任意のリストのアダプター SimpleAdapter ・・・ 基本的なアダプター  Binder SimpleAdapter 等の拡張

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); public View newView(Context context, Cursor cursor, ViewGroup parent) { return null; } CursorView の場合はこっち

ListView の動作 Adapter getView

ListView でコレを使いこなせ public void setTag (Object tag)Object public void setTag (int key, Object tag) Object public Object getTag () Object public Object getTag (int key) Object ListView Event 処理

ListView の前後につけるもの  HeaderView と FooterView 使い道? もっと読む や、 読み込み中 等 LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); からの view = layoutInflater.inflate(R.layout.fortune_row, null);

時間確認 時間は?

時間確認 まだある

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

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

総合演習 その名も!

総合演習 告白スイッチ!!

アプリをつくっちゃお 1 誰でも告白できる 2 まさかのときでも 3 だから安心 4 とにかく迷わない

アプリをつくっちゃお それでは作りましょう まずは画面デザインから

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

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

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

完成!

質問があれば 質問受付中