1

私の最新の(そして最初の)Androidアプリケーションは、ユーザーが設定で画面を縦向きまたは横向きに固定するか、センサーによって向きを決定できるようにするかを選択できるようにします。ユーザーの好みに反応するために、次のようなものがあります

public static void setOrientation(Activity a,int orientation) {

    switch (orientation) {
    case (1): {
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
        break;
    }
    case (2): {
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        break;
    }
    case (3): {
        a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        break;
    }
    }   
}

それに応じて向きを設定するために onCreate/onRestart で呼び出します。

私が現在直面している問題は、ユーザーがあるアクティビティから次のアクティビティに切り替えると (固定の向きが選択されている場合)、画面が要求どおりの向きになる前に、センサーに応じて画面が一瞬だけ向きを変えることがあります。 . ユーザーが固定の向きを選択したときにセンサーを完全にオフにする方法はありますか。追加してみました

a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

しかし、これまでのところ成功していません。私は明らかなことを監督していると確信しています。方向の固定を動的に達成する方法の啓示は高く評価されます。

どうもありがとう

マーティン

編集:

私は新しい投稿で質問を言い換えました:

android - アクティビティの切り替え時に予期しない短い向きの変更

4

2 に答える 2

0

これをマニフェストに追加してみてください。

android:configChanges="keyboardHidden|orientation|screenSize">

これにより、onPauseおよびonResume

于 2012-09-23T17:46:10.730 に答える
0

Try this...

<activity android:name="com.myapp.MyActivity"
          android:label="@string/app_name"
          android:configChanges="orientation|screenSize"
          />

for more take a look here.....

http://digitaldumptruck.jotabout.com/?p=897

This may help you.

于 2012-09-23T17:52:39.090 に答える