2012-01-06 7 views
1

私のアプリでビューの自動回転をキャンセルしたいと思います。このトピックをターゲットにポストの多くは、それらのすべてがandroid:オリエンテーションの変更をキャンセルするには

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

または

私が必要とするまさに行いますが、発射からonConfigurationChanged()を防止
<activity android:name=".myActivity"     
      android:screenOrientation="portrait"> 

を設定するようなことを示唆して、[1]があり、私はもはや携帯電話の向きを追跡することができないことを意味する。 事は次のとおりです。ある点で向きを知る必要があります。

どのようにビューの回転を有効にせずに携帯電話の向きを得ることができますか?

[1] How do I disable orientation change on Android?

答えて

2

私はOrientationEventListenerを使用することをお勧めかもしれませんか? manifest.xmlファイルでオリエンテーションを設定しても、通知が表示されると思います。

+0

これは本当に機能します! – stoefln

0

あなたが取得する必要がある場合は回転がDisplay#getRotation()を使用しています。

+0

奇妙なことです(非常にクール!):これは画面の向きを固定しないと機能します(例えばsetRequestedOrientationで) – stoefln

0

画面の回転にこ​​の情報が必要な場合は、onConfigurationChangedを自分で実装する必要があります。

あなたが他の目的のために、この情報が必要な場合は、私はあなたがセンサー(加速度計やコンパス)を使用すべきだと思う

+0

私はすでにonConfigurationChangedを上書きしましたが、私のビューは回転しています。この向きの変化をどのように傍受するか。 イメージを正しい向きで保存するための向きが必要です(私はカメラアプリケーションを作成しています) – stoefln

0

あなたがを言うように「事はある:私はいくつかの点での向きについて知っておく必要があります。 "

あなたは方向をいつでも確認することができます

int orientation = getWindow().getWindowManager().getDefaultDisplay().getOrientation(); 
    if(orientation == 0){ //horizontal 

    }else if(orientation == 1){ //vertical 

    } 

オリエンテーションの詳細:http://developer.android.com/reference/android/R.attr.html#orientation

+0

これはsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)なしでのみ動作します。 – stoefln

関連する問題