ANDROID HACKS #18  非同期処理を行う #19  プログレスバーを使う #20  音声読み上げ機能を使う 担当:いぐさ Twitter : @ginyutok 09/19/11
この資料について <ul><li>この資料は下記の本をベースに勉強会で作成した資料です。 </li></ul><ul><ul><li>『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー・ジャパン刊) </li></u...
アジェンダ <ul><ul><li>非同期処理 </li></ul></ul><ul><ul><ul><li>ハンドラ </li></ul></ul></ul><ul><ul><li>プログレスバー </li></ul></ul><ul><ul...
1.  非同期処理 09/19/11
1. 非同期処理 <ul><li>長時間アプリケーションの応答がない ->  Apprication Not Responding  ダイアログが発生 </li></ul><ul><li>負荷の高い処理は画面描画の実行とは別のスレッドにするのが...
1-1. ハンドラ <ul><li>ハンドラ </li></ul><ul><ul><li>他スレッドからメインスレッドに対して処理を依頼する窓口 </li></ul></ul><ul><ul><li>例: </li></ul></ul><ul>...
2.  プログレスバー 09/19/11
2. プログレスバー <ul><li>プログレスバー </li></ul><ul><ul><li>ProgressBar クラス </li></ul></ul><ul><ul><li>XML に <ProgressBar> タグを埋め込む </...
2-1. プログレスバーによる進捗表示 <ul><li>ProgressBar クラス </li></ul><ul><ul><li>Max ・・・全体量を表す ( デフォルト値: 100) </li></ul></ul><ul><ul><li>...
2-1. プログレスバーによる進捗表示 <ul><li>ProgressBar クラス </li></ul><ul><ul><li>Indeterminate 属性 :進捗状況を明確に表示しないか </li></ul></ul><ul><ul>...
2-2. プログレスバーにタイトルバーに表示 <ul><li>タイトルバーにもプログレスバーが表示できる </li></ul><ul><ul><li>記述は Activity クラスのメソッド内に </li></ul></ul><ul><ul>...
2-3.Hack をさらに Hack する <ul><li>多少時間がかかるアプリの起動画面にプログレスバーを利用 </li></ul><ul><ul><li>状態に応じてプログレスバーの進捗が伸びていく </li></ul></ul>09/1...
2-3.Hack をさらに Hack する <ul><li>概要 </li></ul><ul><ul><li>起動中画面  : progressview </li></ul></ul><ul><ul><li>起動後画面: mainview </...
3.  音声読み上げ機能 09/19/11
3. 音声読み上げ機能 <ul><li>TextToSpeech クラス </li></ul><ul><ul><li>TextToSpeech.OnInitListener を実装する必要がある </li></ul></ul><ul><ul><...
3. 音声読み上げ機能 <ul><li>TextToSpeech クラス </li></ul><ul><ul><li>Speak メソッド で読み上げ </li></ul></ul><ul><ul><ul><li>第 1 引数:読み上げる文字列...
3-1.Hack をさらに Hack する <ul><li>自分で好きなテキストを読み上げさせたり、ピッチや速度を変更できるカスタムビューを作成する </li></ul><ul><ul><li>サンプルプログラムがあるので、いろいろやってみると...
参考 URL <ul><li>Android Developers </li></ul><ul><ul><li>http://developer.android.com/intl/ja/index.html </li></ul></ul>09/...
Upcoming SlideShare
Loading in …5
×

Android Hacks - Hack18 ~ Hack20

1,108 views

Published on

「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。

http://www.oreilly.co.jp/books/9784873114569/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,108
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Android Hacks - Hack18 ~ Hack20

  1. 1. ANDROID HACKS #18 非同期処理を行う #19 プログレスバーを使う #20 音声読み上げ機能を使う 担当:いぐさ Twitter : @ginyutok 09/19/11
  2. 2. この資料について <ul><li>この資料は下記の本をベースに勉強会で作成した資料です。 </li></ul><ul><ul><li>『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー・ジャパン刊) </li></ul></ul><ul><li>この本の紹介ページが下記にあります。 </li></ul><ul><ul><li>http://www.oreilly.co.jp/books/9784873114569/ </li></ul></ul>09/19/11
  3. 3. アジェンダ <ul><ul><li>非同期処理 </li></ul></ul><ul><ul><ul><li>ハンドラ </li></ul></ul></ul><ul><ul><li>プログレスバー </li></ul></ul><ul><ul><ul><li>プログレスバーによる進捗表示 </li></ul></ul></ul><ul><ul><ul><li>プログレスバーをタイトルバーに表示 </li></ul></ul></ul><ul><ul><ul><li>Hack をさらに Hack する </li></ul></ul></ul><ul><ul><li>音声読み上げ機能 </li></ul></ul><ul><ul><ul><li>Hack をさらに Hack する </li></ul></ul></ul>09/19/11
  4. 4. 1. 非同期処理 09/19/11
  5. 5. 1. 非同期処理 <ul><li>長時間アプリケーションの応答がない -> Apprication Not Responding ダイアログが発生 </li></ul><ul><li>負荷の高い処理は画面描画の実行とは別のスレッドにするのが一般的 </li></ul><ul><ul><li>※ 画面描画はメインスレッドで行わなければならない! </li></ul></ul>09/19/11
  6. 6. 1-1. ハンドラ <ul><li>ハンドラ </li></ul><ul><ul><li>他スレッドからメインスレッドに対して処理を依頼する窓口 </li></ul></ul><ul><ul><li>例: </li></ul></ul><ul><ul><li>Thread th = new Thread() { </li></ul></ul><ul><ul><li>public void run() { </li></ul></ul><ul><ul><li>Handler.post (new Runnable()) { </li></ul></ul><ul><ul><li>@Override public void run() { </li></ul></ul><ul><ul><li>mTextView1.setText(“process finish!!”); </li></ul></ul><ul><ul><li>mProgressDialog.dismiss(); </li></ul></ul><ul><ul><li>・・・・・・・・・・・・・・・・・ </li></ul></ul>09/19/11 ハンドラ これらの処理はメインスレッドで行われる
  7. 7. 2. プログレスバー 09/19/11
  8. 8. 2. プログレスバー <ul><li>プログレスバー </li></ul><ul><ul><li>ProgressBar クラス </li></ul></ul><ul><ul><li>XML に <ProgressBar> タグを埋め込む </li></ul></ul><ul><ul><li>Android2.1 の場合、 7 種類のプログレスバーが存在 </li></ul></ul><ul><ul><ul><li>ProgressBarStyle ・・・円状。大きな物は~ Large 、小さなものは~ Small </li></ul></ul></ul><ul><ul><ul><li>ProgressBarStyleInverse ・・・色を反転した円状のもの。 Large と Small がある </li></ul></ul></ul><ul><ul><ul><li>ProgressBarStyleHorizontal ・・・水平方向の棒状の物。 Indeterminate 属性の false 指定に対応 ( 後述 ) </li></ul></ul></ul>09/19/11
  9. 9. 2-1. プログレスバーによる進捗表示 <ul><li>ProgressBar クラス </li></ul><ul><ul><li>Max ・・・全体量を表す ( デフォルト値: 100) </li></ul></ul><ul><ul><li>Progress ・・・進捗状況 ( メイン ) </li></ul></ul><ul><ul><li>SecondaryProgress ・・・進捗状況 ( サブ ) </li></ul></ul><ul><ul><ul><li>例:動画のストリーミング再生 </li></ul></ul></ul><ul><ul><ul><ul><li>Progress ・・・再生状況 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>SecondaryProgress ・・・バッファリング状況 </li></ul></ul></ul></ul>09/19/11
  10. 10. 2-1. プログレスバーによる進捗表示 <ul><li>ProgressBar クラス </li></ul><ul><ul><li>Indeterminate 属性 :進捗状況を明確に表示しないか </li></ul></ul><ul><ul><ul><li>true( 表示しない ) : Max の値が不定になる </li></ul></ul></ul><ul><ul><ul><li>false( 表示する ) : Max の値が一定 </li></ul></ul></ul><ul><ul><li>Indeterminate 属性は ProgressBarStyleHorizontal のみ有効 </li></ul></ul><ul><ul><ul><li>他のスタイルでは false になっているが、進捗状況を明確に表示しないので、今後の仕様変更に注意 </li></ul></ul></ul>09/19/11
  11. 11. 2-2. プログレスバーにタイトルバーに表示 <ul><li>タイトルバーにもプログレスバーが表示できる </li></ul><ul><ul><li>記述は Activity クラスのメソッド内に </li></ul></ul><ul><ul><ul><li>requestWindowFeature メソッドでタイトルバー内にプログレスバー表示を指定 </li></ul></ul></ul><ul><ul><ul><ul><li>引数で形状を指定できる </li></ul></ul></ul></ul><ul><ul><ul><li>setProgress ~メソッドで Progress や SecondaryProgress の値を設定 </li></ul></ul></ul><ul><ul><ul><ul><li>Max の値は指定できない (0 ~ 10000) </li></ul></ul></ul></ul>09/19/11
  12. 12. 2-3.Hack をさらに Hack する <ul><li>多少時間がかかるアプリの起動画面にプログレスバーを利用 </li></ul><ul><ul><li>状態に応じてプログレスバーの進捗が伸びていく </li></ul></ul>09/19/11
  13. 13. 2-3.Hack をさらに Hack する <ul><li>概要 </li></ul><ul><ul><li>起動中画面 : progressview </li></ul></ul><ul><ul><li>起動後画面: mainview </li></ul></ul><ul><ul><li>これらを showProgress メソッドと hideProgress メソッドで表示・非表示を切り替える </li></ul></ul>09/19/11
  14. 14. 3. 音声読み上げ機能 09/19/11
  15. 15. 3. 音声読み上げ機能 <ul><li>TextToSpeech クラス </li></ul><ul><ul><li>TextToSpeech.OnInitListener を実装する必要がある </li></ul></ul><ul><ul><li>日本語未対応 </li></ul></ul><ul><ul><ul><li>ローマ字ならそれっぽく読ませることも出来る? </li></ul></ul></ul><ul><ul><li>コンストラクタの引数は </li></ul></ul><ul><ul><ul><li>第 1 引数: Context クラス (Activity や Service の基底クラス ) </li></ul></ul></ul><ul><ul><ul><li>第 2 引数: TextToSpeech.OnInitListener を実装したクラス </li></ul></ul></ul><ul><ul><li>Locale クラスで言語設定 </li></ul></ul>09/19/11
  16. 16. 3. 音声読み上げ機能 <ul><li>TextToSpeech クラス </li></ul><ul><ul><li>Speak メソッド で読み上げ </li></ul></ul><ul><ul><ul><li>第 1 引数:読み上げる文字列 </li></ul></ul></ul><ul><ul><ul><li>第 2 引数:キューの追加方法 </li></ul></ul></ul><ul><ul><ul><li>第 3 引数:別途のパラメータ </li></ul></ul></ul><ul><ul><li>キューの追加方法 </li></ul></ul><ul><ul><ul><li>QUEUE_FLUSH :読み上げ中でも新しい文字列を読み上げる(待ち行列も破棄) </li></ul></ul></ul><ul><ul><ul><li>QUEUE_ADD :待ち行列に追加 </li></ul></ul></ul>09/19/11
  17. 17. 3-1.Hack をさらに Hack する <ul><li>自分で好きなテキストを読み上げさせたり、ピッチや速度を変更できるカスタムビューを作成する </li></ul><ul><ul><li>サンプルプログラムがあるので、いろいろやってみると面白いです </li></ul></ul><ul><ul><li>プログラムの詳細は省略 </li></ul></ul>09/19/11
  18. 18. 参考 URL <ul><li>Android Developers </li></ul><ul><ul><li>http://developer.android.com/intl/ja/index.html </li></ul></ul>09/19/11

×