2015-04-01 1 views
1

Есть ли способ отключить ориентацию обратного пейзажа и обратную ориентацию в андроидной активности. Я использовал приведенный ниже код. Но на этот раз обратный пейзаж.Как отключить только ориентацию обратного экрана в активности андроида

 rotation = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay().getRotation(); 
    System.out.println("Rotation Value : " +rotation); 
    if(rotation==0){ 
     System.out.println("portrait"); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);} 
    if(rotation==1){ 
     System.out.println("landscape"); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);} 

    if(rotation==2) 
    { 
     System.out.println("reverse portrait"); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 
    } 
    if(rotation==3) 
    { 
     System.out.println("reverse landscape"); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 
    } 

ответ

2

Добавить android: configChanges = "keyboardHidden" ориентация "на ваш AndroidManifest.xml. Это сообщает системе, какие изменения конфигурации вы собираетесь обрабатывать самостоятельно, в этом случае ничего не делая.

<activity 
android:name="MainActivity" 
android:screenOrientation="portrait" //This line only if you want to lock your screen Orientation 
android:configChanges="keyboardHidden|orientation|screenSize"> 

Проверьте, пожалуйста, http://developer.android.com/reference/android/R.attr.html#configChanges.

Затем переопределить onConfigurationChanged: http://developer.android.com/guide/topics/resources/runtime-changes.html

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 

     // Checks the orientation of the screen 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
     } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
      Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

тогда мне придется переопределить onConfigurationChanged() в моем классе деятельности ??? –

+0

Только что редактировал мой пост –

+0

Спасибо за сообщение. это сработало. Но как это будет полезно для блокировки обратных ориентаций? –