2013年8月24日土曜日

[Android] 端末の傾きに立方体を連動させる

How to detecot the tilt
端末の傾き具合を検知するアプリを作りました。

傾きを検知するに当たりTechBooster様のコンテンツを参考にしました。
http://techbooster.jpn.org/andriod/ui/443/

傾き具合を数字で表示しても分かりにくいので立方体(キューブ)で表示します。
立方体の表示はAndroid SDK付属のOpen GLのサンプルを流用します。
端末の傾き取得のため磁界センサーと加速度センサーの両方を使います
両方のセンサーをもつ端末が必要です。中華PadのONDA Vi30は必要なセンサーがありませんでした。
センサーから得られる値がラジアンなので角度に変換するなど 前回の方位磁石アプリ
に比べるとソースがどちょっと複雑です。

このブログを書いている時点の開発環境は次の通りです。
・Windows8 (64bit)
・Eclipse Juno (32bit)(XP互換モードで起動)
・Android SDK r22.0.1

以下ソースです。

MainActivity.java (Activity)

※特別な権限(Permission)は不要なのでマニフェストは省略します。
Target SDK Version が4以上の設定でビルドできます。
Android1.6以降で動作します。

実行する端末を動かすたびに立方体が回転します。
SH-03Cで動作させるとセンサーのノイズが多いのか、端末が静止していても立方体がプルプル動きます。
方位センサーほどの精度は期待できないようです。

関連ブログ
[Android] 方位センサーを使ってコンパスアプリを作る
[Android] Javaのstaticクラスから非sataticメソッドを呼び出すには
[Android] OpenGLの簡易画像ビュアーにSDカード内の画像を表示する
[Windows8][Android] Can't bind to local 8600 for debugger
[Android] Android-SDKでやってはいけないこと
[Android] Toastに画像やボタンを表示するには
[Android] ライブ壁紙の作り方
[Android] Activityに時計を表示する(Activityの非同期更新)
[Android] Webコンテンツを強制的に表示するには
[Android] Toastをcancelするには

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿