狠狠撸

狠狠撸Share a Scribd company logo
ANDROID HACKS #21  ジェスチャを使う 担当: tsuruoka 09/19/11
この資料について この資料は下記の本をベースに勉強会で作成した資料です。 『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー?ジャパン刊) この本の紹介ページが下記にあります。 http://www.oreilly.co.jp/books/9784873114569/ 09/19/11
アジェンダ Hack21  ジェスチャを使う 定義されているジェスチャ 長押し、 Fling など 登録したジェスチャ 登録された軌跡との類似度で認識 09/19/11
Hack21.  ジェスチャとは 2種類のジェスチャがあります 定義されているジェスチャ 短押し、シングルタップ、 Fling (さっと払う動き)等 いくつかの操作を”ジェスチャー”として解釈?認識するもの 登録したジェスチャ 画面上をなぞる操作に対して登録済みの軌跡との類似度が 一定以上のとき、その軌跡が入力されたと認識するもの 09/19/11
Hack21. 定義されているジェスチャ GestureDetectorが Motion Eventを逐次ジェスチャとして解釈します 解釈とは、下記6つの OnGestureListener のメソッドに当てはめること OnGestureListener のメソッド onDown 最初に押したとき呼び出される(ジェスチャはいつもここからはじまる) onFling さっと振り払う操作が行われた場合呼び出される onLongPress 同じ場所を押しつづけた時に呼び出される これが呼び出された後は指を離さない限りジェスチャとしては認識されない onScroll 指を動かしている間中、これが連続して呼び出される onShowPress ちょっと押したとき呼び出される。 onLongPress の前に必ず呼び出される。 onSingleTapUp とんっと1回タップした動きに対して呼び出される 09/19/11
Hack21 定義されているジェスチャの実装 ジェスチャを取りたい Activity に  implements onGestureListener フィールド GestureDetector gestureScanner onCreate gestureScanner = new GestureDetector(this) Public boolean onTouchEvent(MotionEvent me) { ?????? return gestureScannner.onTouchEvent(me)  }
Hack21 定義されているジェスチャー 解釈例 解釈の実行例 ( onTouchEvent と6つのメソッドそれぞれに logcat 出力させた) 02-11 17:04:11.792: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.792: DEBUG/mydbg(18605): onDown 02-11 17:04:11.792: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.825: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.852: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.852: DEBUG/mydbg(18605): onScroll 02-11 17:04:11.882: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.882: DEBUG/mydbg(18605): onScroll 02-11 17:04:11.912: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.912: DEBUG/mydbg(18605): onScroll 02-11 17:04:11.933: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.272: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.302: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.302: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.332: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.332: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.352: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.352: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.385: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.385: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.385: DEBUG/mydbg(18605): onTouchEvent
Hack21  定義されているジェスチャ 解釈例 はじくような操作 (Fling) 02-11 17:45:47.852: DEBUG/mydbg(21436): onDown 02-11 17:45:47.952: DEBUG/mydbg(21436): onShowPress 02-11 17:45:48.242: DEBUG/mydbg(21436): onScroll 02-11 17:45:48.432: DEBUG/mydbg(21436): onScroll 02-11 17:45:48.442: DEBUG/mydbg(21436): onFling
Hack21  定義されているジェスチャ 解釈例 短いタップ 02-11 17:47:02.322: DEBUG/mydbg(21436): onDown 02-11 17:47:02.422: DEBUG/mydbg(21436): onShowPress 02-11 17:47:02.652: DEBUG/mydbg(21436): onSingleTapUp とか 02-11 17:47:05.542: DEBUG/mydbg(21436): onDown 02-11 17:47:05.612: DEBUG/mydbg(21436): onSingleTapUp
Hack21  定義されているジェスチャ 解釈例2 長押を検出したいとき 02-11 17:10:14.032: DEBUG/mydbg(18916): onDown 02-11 17:10:14.133: DEBUG/mydbg(18916): onShowPress 02-11 17:10:14.632: DEBUG/mydbg(18916): onLongPress のようにイベントが検出されます。 onLongPress 後は gesture として解釈されません。 つまり長押あとに動かしても  onScroll を取ることができない。
Hack21 登録されたジェスチャ 自分の好きな図形を登録し、それとの類似度で そのジェスチャが行われたかを判断できます ジェスチャの登録は   android-sdk-windows\platforms\android4\samples\GestureBuilder を自分でビルドして そこから登録すれば良い 登録されたジェスチャがファイルとして出力される それを自分のアプリに組み込んで利用できる GestureBuilder で登録したジェスチャは gestures ファイルとして SD card のルートに吐き出されます プロジェクト内の Res/raw/gestures  に    gestures ファイルを置くなどして利用
Hack21 登録されたジェスチャ Ges tureBuilder で登録しました ジェスチャには名前をつけることができます。 (なぜか) 2画以上のジェスチャも登録できます。
Hack21 登録されたジェスチャの実装 ジェスチャを取り込む専用の View を使います <android.gesture.GestureOverlayView> フィールド Private GestureLibrary mLibrary onCreate mLibrary = GestureLibraries.fromRawResource(this,R.raw.gestures); gestures はジェスチャを登録したファイル名 GestureOverlayview gestures = (GestureOverlayView)findViewById(R.id. XXX ) XXX は GestureOverlayView の id Gestures.addOnGesturePerformedListener(this)
Hack21 登録されたジェスチャの実装 public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { Log. d (&quot;mydgb&quot;, &quot;onGesturePerformed&quot;); ArrayList<Prediction> predictions = mLibrary.recognize(gesture); // We want at least one prediction if (predictions.size() > 0) { Prediction prediction = predictions.get(0); // We want at least some confidence in the result if (prediction.score > 1.0) { // Show the spell Toast. makeText (this, prediction.name, Toast. LENGTH_SHORT ).show(); } }else{ Toast. makeText (this, &quot;Such gesture isn't registered.&quot;, Toast. LENGTH_SHORT ).show(); } }
Hack21  ジェスチャまとめ AndroidHacks にもありますが 定義されているジェスチャ?登録型ジェスチャはそれぞれ一長一短。

More Related Content

Viewers also liked (10)

Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2
Bagus Wahyu
?
PM human resource management
PM human resource managementPM human resource management
PM human resource management
Bagus Wahyu
?
PM Risk management plan
PM Risk management planPM Risk management plan
PM Risk management plan
Bagus Wahyu
?
PM Project communication management plan
PM Project communication management planPM Project communication management plan
PM Project communication management plan
Bagus Wahyu
?
Pm time management plan
Pm time management planPm time management plan
Pm time management plan
Bagus Wahyu
?
Pm project charter
Pm project charterPm project charter
Pm project charter
Bagus Wahyu
?
PM procurement management plan
PM procurement management planPM procurement management plan
PM procurement management plan
Bagus Wahyu
?
PM Scope Management Plan
PM Scope Management PlanPM Scope Management Plan
PM Scope Management Plan
Bagus Wahyu
?
Mpti edisi 1 140207
Mpti edisi 1 140207Mpti edisi 1 140207
Mpti edisi 1 140207
Bagus Wahyu
?
??? ????? (KAKAO AD PLATFORM)
??? ????? (KAKAO AD PLATFORM)??? ????? (KAKAO AD PLATFORM)
??? ????? (KAKAO AD PLATFORM)
Jaegook Lim
?
Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2Perbandingan pmbok dan prince2
Perbandingan pmbok dan prince2
Bagus Wahyu
?
PM human resource management
PM human resource managementPM human resource management
PM human resource management
Bagus Wahyu
?
PM Risk management plan
PM Risk management planPM Risk management plan
PM Risk management plan
Bagus Wahyu
?
PM Project communication management plan
PM Project communication management planPM Project communication management plan
PM Project communication management plan
Bagus Wahyu
?
Pm time management plan
Pm time management planPm time management plan
Pm time management plan
Bagus Wahyu
?
PM procurement management plan
PM procurement management planPM procurement management plan
PM procurement management plan
Bagus Wahyu
?
PM Scope Management Plan
PM Scope Management PlanPM Scope Management Plan
PM Scope Management Plan
Bagus Wahyu
?
Mpti edisi 1 140207
Mpti edisi 1 140207Mpti edisi 1 140207
Mpti edisi 1 140207
Bagus Wahyu
?
??? ????? (KAKAO AD PLATFORM)
??? ????? (KAKAO AD PLATFORM)??? ????? (KAKAO AD PLATFORM)
??? ????? (KAKAO AD PLATFORM)
Jaegook Lim
?

More from Masanori Ohkawara (16)

Android Hacks - 合宿インテント
Android Hacks - 合宿インテントAndroid Hacks - 合宿インテント
Android Hacks - 合宿インテント
Masanori Ohkawara
?
Android Hacks - 合宿 Service
Android Hacks - 合宿 ServiceAndroid Hacks - 合宿 Service
Android Hacks - 合宿 Service
Masanori Ohkawara
?
Android Hacks - 合宿 Activity
Android Hacks - 合宿 ActivityAndroid Hacks - 合宿 Activity
Android Hacks - 合宿 Activity
Masanori Ohkawara
?
Android Hacks - Hack59
Android Hacks - Hack59Android Hacks - Hack59
Android Hacks - Hack59
Masanori Ohkawara
?
Android Hacks - Hack57
Android Hacks - Hack57Android Hacks - Hack57
Android Hacks - Hack57
Masanori Ohkawara
?
Android Hacks - Hack47
Android Hacks - Hack47Android Hacks - Hack47
Android Hacks - Hack47
Masanori Ohkawara
?
Android Hacks - Hack40
Android Hacks - Hack40Android Hacks - Hack40
Android Hacks - Hack40
Masanori Ohkawara
?
Android Hacks - Hack32
Android Hacks - Hack32Android Hacks - Hack32
Android Hacks - Hack32
Masanori Ohkawara
?
Android Hacks - Hack31
Android Hacks - Hack31Android Hacks - Hack31
Android Hacks - Hack31
Masanori Ohkawara
?
Android Hacks - Hack30
Android Hacks - Hack30Android Hacks - Hack30
Android Hacks - Hack30
Masanori Ohkawara
?
Android Hacks - Hack27 ~ Hack29
Android Hacks - Hack27 ~ Hack29Android Hacks - Hack27 ~ Hack29
Android Hacks - Hack27 ~ Hack29
Masanori Ohkawara
?
Android Hacks - Hack26
Android Hacks - Hack26Android Hacks - Hack26
Android Hacks - Hack26
Masanori Ohkawara
?
Android Hacks - Hack18 ~ Hack20
Android Hacks - Hack18 ~ Hack20Android Hacks - Hack18 ~ Hack20
Android Hacks - Hack18 ~ Hack20
Masanori Ohkawara
?
Android Hacks - Hack12
Android Hacks - Hack12Android Hacks - Hack12
Android Hacks - Hack12
Masanori Ohkawara
?
Android Hacks - Hack11
Android Hacks - Hack11Android Hacks - Hack11
Android Hacks - Hack11
Masanori Ohkawara
?
Android Hacks - Hack8
Android Hacks - Hack8Android Hacks - Hack8
Android Hacks - Hack8
Masanori Ohkawara
?

Recently uploaded (10)

自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
Toyo University
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト运営事务局
?
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
MaiKaneko4
?
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ssuserfcafd1
?
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
suzukiyu1
?
20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf
Ayachika Kitazaki
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
Toyo University
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
MaiKaneko4
?
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ssuserfcafd1
?
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
suzukiyu1
?
20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf
Ayachika Kitazaki
?

Android Hacks - Hack21

  • 1. ANDROID HACKS #21 ジェスチャを使う 担当: tsuruoka 09/19/11
  • 2. この資料について この資料は下記の本をベースに勉強会で作成した資料です。 『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー?ジャパン刊) この本の紹介ページが下記にあります。 http://www.oreilly.co.jp/books/9784873114569/ 09/19/11
  • 3. アジェンダ Hack21 ジェスチャを使う 定義されているジェスチャ 長押し、 Fling など 登録したジェスチャ 登録された軌跡との類似度で認識 09/19/11
  • 4. Hack21. ジェスチャとは 2種類のジェスチャがあります 定義されているジェスチャ 短押し、シングルタップ、 Fling (さっと払う動き)等 いくつかの操作を”ジェスチャー”として解釈?認識するもの 登録したジェスチャ 画面上をなぞる操作に対して登録済みの軌跡との類似度が 一定以上のとき、その軌跡が入力されたと認識するもの 09/19/11
  • 5. Hack21. 定義されているジェスチャ GestureDetectorが Motion Eventを逐次ジェスチャとして解釈します 解釈とは、下記6つの OnGestureListener のメソッドに当てはめること OnGestureListener のメソッド onDown 最初に押したとき呼び出される(ジェスチャはいつもここからはじまる) onFling さっと振り払う操作が行われた場合呼び出される onLongPress 同じ場所を押しつづけた時に呼び出される これが呼び出された後は指を離さない限りジェスチャとしては認識されない onScroll 指を動かしている間中、これが連続して呼び出される onShowPress ちょっと押したとき呼び出される。 onLongPress の前に必ず呼び出される。 onSingleTapUp とんっと1回タップした動きに対して呼び出される 09/19/11
  • 6. Hack21 定義されているジェスチャの実装 ジェスチャを取りたい Activity に implements onGestureListener フィールド GestureDetector gestureScanner onCreate gestureScanner = new GestureDetector(this) Public boolean onTouchEvent(MotionEvent me) { ?????? return gestureScannner.onTouchEvent(me) }
  • 7. Hack21 定義されているジェスチャー 解釈例 解釈の実行例 ( onTouchEvent と6つのメソッドそれぞれに logcat 出力させた) 02-11 17:04:11.792: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.792: DEBUG/mydbg(18605): onDown 02-11 17:04:11.792: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.825: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.852: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.852: DEBUG/mydbg(18605): onScroll 02-11 17:04:11.882: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.882: DEBUG/mydbg(18605): onScroll 02-11 17:04:11.912: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:11.912: DEBUG/mydbg(18605): onScroll 02-11 17:04:11.933: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.272: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.302: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.302: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.332: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.332: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.352: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.352: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.385: DEBUG/mydbg(18605): onTouchEvent 02-11 17:04:12.385: DEBUG/mydbg(18605): onScroll 02-11 17:04:12.385: DEBUG/mydbg(18605): onTouchEvent
  • 8. Hack21 定義されているジェスチャ 解釈例 はじくような操作 (Fling) 02-11 17:45:47.852: DEBUG/mydbg(21436): onDown 02-11 17:45:47.952: DEBUG/mydbg(21436): onShowPress 02-11 17:45:48.242: DEBUG/mydbg(21436): onScroll 02-11 17:45:48.432: DEBUG/mydbg(21436): onScroll 02-11 17:45:48.442: DEBUG/mydbg(21436): onFling
  • 9. Hack21 定義されているジェスチャ 解釈例 短いタップ 02-11 17:47:02.322: DEBUG/mydbg(21436): onDown 02-11 17:47:02.422: DEBUG/mydbg(21436): onShowPress 02-11 17:47:02.652: DEBUG/mydbg(21436): onSingleTapUp とか 02-11 17:47:05.542: DEBUG/mydbg(21436): onDown 02-11 17:47:05.612: DEBUG/mydbg(21436): onSingleTapUp
  • 10. Hack21 定義されているジェスチャ 解釈例2 長押を検出したいとき 02-11 17:10:14.032: DEBUG/mydbg(18916): onDown 02-11 17:10:14.133: DEBUG/mydbg(18916): onShowPress 02-11 17:10:14.632: DEBUG/mydbg(18916): onLongPress のようにイベントが検出されます。 onLongPress 後は gesture として解釈されません。 つまり長押あとに動かしても onScroll を取ることができない。
  • 11. Hack21 登録されたジェスチャ 自分の好きな図形を登録し、それとの類似度で そのジェスチャが行われたかを判断できます ジェスチャの登録は   android-sdk-windows\platforms\android4\samples\GestureBuilder を自分でビルドして そこから登録すれば良い 登録されたジェスチャがファイルとして出力される それを自分のアプリに組み込んで利用できる GestureBuilder で登録したジェスチャは gestures ファイルとして SD card のルートに吐き出されます プロジェクト内の Res/raw/gestures  に    gestures ファイルを置くなどして利用
  • 12. Hack21 登録されたジェスチャ Ges tureBuilder で登録しました ジェスチャには名前をつけることができます。 (なぜか) 2画以上のジェスチャも登録できます。
  • 13. Hack21 登録されたジェスチャの実装 ジェスチャを取り込む専用の View を使います <android.gesture.GestureOverlayView> フィールド Private GestureLibrary mLibrary onCreate mLibrary = GestureLibraries.fromRawResource(this,R.raw.gestures); gestures はジェスチャを登録したファイル名 GestureOverlayview gestures = (GestureOverlayView)findViewById(R.id. XXX ) XXX は GestureOverlayView の id Gestures.addOnGesturePerformedListener(this)
  • 14. Hack21 登録されたジェスチャの実装 public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { Log. d (&quot;mydgb&quot;, &quot;onGesturePerformed&quot;); ArrayList<Prediction> predictions = mLibrary.recognize(gesture); // We want at least one prediction if (predictions.size() > 0) { Prediction prediction = predictions.get(0); // We want at least some confidence in the result if (prediction.score > 1.0) { // Show the spell Toast. makeText (this, prediction.name, Toast. LENGTH_SHORT ).show(); } }else{ Toast. makeText (this, &quot;Such gesture isn't registered.&quot;, Toast. LENGTH_SHORT ).show(); } }
  • 15. Hack21  ジェスチャまとめ AndroidHacks にもありますが 定義されているジェスチャ?登録型ジェスチャはそれぞれ一長一短。