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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。