|
こんばんわ〜
前回メモアプリを作ったのですが、なかなか使えるなと自画自賛。
立ち上げて何か編集して、そのまま終了すると勝手に保存するようにしたのですが、起動→メモを書く→終了させるとして保存しまくって、後で画像を整理するという使い方にしているのですが、なかなか便利につかえるなと。。
それはそうと今度は、センサーの値を確認できるアプリを作成中。
画面はこんな感じです。
磁気センサーと加速度センサーとそれらから端末の向きを計算した値をそれぞれ表示します。
端末の向きがなかなか理解できなくて。。。
最終的には以下のようにして、傾き(画面ではROTATIONになっていますが。。。)を求めました。
SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_X, SensorManager.AXIS_Y, outR);
SensorManager.getOrientation(outR, orientationValues); 特にremapCoordinateSystemの第二、第三引数が何にするのがいいのかが理解できなかったのですが、私は次のように自分なりに納得したつもり。おばかさんなので間違っているかも。。
1.地球の南北をY軸、東西をX軸、地球の中心から空へ向かう軸をZ軸とする。
2.端末の上下をY軸、左右をX軸、向こう側、手前をZ軸とする。
3.地球のX軸、Y軸に対して端末のどの軸をどの向きで割り当てるかを指定する。
私の端末で
SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_X, SensorManager.AXIS_Y, outR);
とした場合は、端末を画面を空に向かっておいて、端末の上部を北に向けたときにOrientationが全部0になります。画面を立てていくとX軸周りに値が変わっていって、画面を横に回すとY軸周りに値が変わります。
たとえばASIX_X,AXIS_Zとするとえぇ〜と画面を北に向けて、端末の上を空に向ければいいのかな?あれ?違うか?XはAXIS_MINUS_Xとして正負を逆にしないといけないですかね。。。うぉ〜やっぱりわからなくなってきた。マップをメニューから選べるようにしてみようかな。。
|

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- その他コンピュータ


