2013-05-02 14 views
0

Я знаю, как это сделать в классе активности, однако это не соответствует моей потребности. В моем классе, который расширяет представление, после вызова метода я хотел бы, чтобы ориентация экрана была заблокирована. И затем, как только будет вызван другой метод, я бы хотел его разблокировать.Заблокировать ориентацию экрана в классе View - Android

Есть ли способ, которым я могу это сделать в своем классе, который расширяет представление?

Спасибо.

ответ

0

я думаю, что вы ищете, это configChanges см док ->http://developer.android.com/reference/android/R.attr.html#configChanges

+0

Да, однако это может быть использовано только в рамках деятельности. Мой вопрос в том, как я могу манипулировать этим в представлении. – Waddas

+0

, которые нуждаются в более подробной информации – TheBeps

1
@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    // TODO Auto-generated method stub 
    super.onConfigurationChanged(newConfig); 

    setContentView(this.gameView); 

    if (this.gameView.isOrientationChange() == false) { 
     // Stop the screen orientation changing during an event 
     switch (this.getResources().getConfiguration().orientation) { 
      case Configuration.ORIENTATION_PORTRAIT: 
       this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
       break; 
      case Configuration.ORIENTATION_LANDSCAPE: 
       this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
       break; 
     } 
    } 
    else { 
     // allow screen rotations 
     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 
    } 
} 

В классе расширения View, имеется логическое поле orientationChange. это изменяется методом, указывающим, можно ли изменить ориентацию устройств. Это сработало, но размер экрана также изменяется при изменении ориентации. Поэтому, если существует много кода, зависящего от размера и времени, это может вызвать больше проблем, чем решить.

0

Может быть, у меня есть метод, просто записать, что:

установить layoutParams.screenOrientation значение в: ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED или ActivityInfo.SCREEN_ORIENTATION_LOCKED

Затем вызовите addView или updateViewLayout обновить этот LayoutParams.

Смежные вопросы