2011-07-25 8 views
0

これは繰り返しの質問ですが、Android 2.3+(Gingerbread)以降は決定的な回答が掲載されておらず、受け入れられていません。プラットフォームのバージョン間で画面の向きを固定する正しい方法

Froyoの携帯電話とハニカムタブレットの両方で現在の画面の向きを取得するコードがあります。私の質問は以下のとおりです。私は前のジンジャーブレッドのバージョン、1は私が使用する必要があり に取り出す2つの方向のうち

  1. オリエンテーション/ローテーションを設定してロックするにはどのような方法を使用しますか?あなたは、新しいバージョンをターゲットとする場合は、古いバージョンでは、その後getOrientation()を使うターゲットとする、とした場合。ここ

protected void lockCurrentOrientation() { 

    int orientation; 
    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) 
    { 
     orientation = getResources().getConfiguration().orientation; 
     Log.d(LogTag, "Orientation via getConfiguration " + String.valueOf(orientation)); 

     // Not working - reporting -1 (SCREEN_ORIENTATION_UNSPECIFIED) 
     // orientation = getRequestedOrientation(); 
     // Log.d(LogTag, "Orientation via getRequestedOrientation " + String.valueOf(orientation)); 

     orientation = display.getOrientation(); 
     Log.d(LogTag, "Orientation via WindowManager " + String.valueOf(orientation)); 
    } 
    else 
    { 
     orientation = display.getRotation(); 
     Log.d(LogTag, "Orientation via Display.getRotation " + String.valueOf(orientation)); 
    } 
} 

答えて

0

(検索しますが、設定していません)私は今それを持っているような方法であります、次にgetRotation()を使用します。ターゲットとは、マニフェストファイルにターゲットSDK内に置いたものを意味します。

+0

私のコードサンプルは既にそれを行っています。私はそれが正しい方法を設定することを求めていた。回転の場合、返される値はデバイスの「自然な向き」に対する相対角度であると言われていますが、向きを設定する方法を知っている唯一の方法は、相対角度ではなく、orienatation値を参照するconstを渡すことによるsetRequestedOrientationです自然な方向へ – Rich

関連する問題