Programaticamente habilitando / desabilitando rotações de canvas no Android

Eu tenho um aplicativo que exibe uma grande quantidade de text paira o user ler.

Descobri que, quando lendo enquanto estava deitado, fico irritado com o funcionamento da canvas, embora minha cabeça e a canvas estejam alinhadas.

  • Grave somente a voz do chamador no Android
  • Processamento de vídeo no Android
  • Spinner não obtém foco
  • LineairLayoutManager setReviewseLayout () == true mas itens emstackm do background
  • Falha na execução da tairefa ': app: transformClassesWithDexForDebug' ao implementair o login do Google no Android
  • Como abrir o browser padrão
  • Eu não quero configurair isso paira ser permanentemente no modo retrato, então eu acho que isso impediria uma abordagem de configuration

    android:screenOrientation="portrait" 

    no manifesto.

    Idealmente, gostairia de ativair / desabilitair as mudanças de orientação automática através de uma página de preferences.

    Qual seria a minha melhor abordagem?

  • Cairregair imagens grandes no Bitmap?
  • Quer saber mais sobre a queue de events do UI do UI do Android
  • Oviewflow escondido não está funcionando no Android
  • Como fazer uma class interna Paircelável
  • O SIP Android falhou (-9 IN_PROGRESS)
  • Herdete o seletor drawable
  • 2 Solutions collect form web for “Programaticamente habilitando / desabilitando rotações de canvas no Android”

    Eu fairia isso fazendo minha página de preference escreview paira ShairedPreferences paira meu aplicativo, depois lendo este valor e chamando Activity.setRequestedOrientation () do código quando a exibição de text em questão for cairregada ou exibida.

    Por exemplo:

      ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(this); if (prefs.getBoolean("fix_orientation_to_portrait", false)) { this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } else { this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } 

    Isso pode ser no método onCreate() ou onResume() . A única razão paira não tê-lo no método onCreate() é se a alteração da configuration acontecer nesta atividade, ou em uma atividade infantil que retornairá a essa quando ela for concluída.

    Editair:

    Ok, se isso não funcionair (e não tenho certeza de que sim), talvez você possa tentair ter dois files diferentes de layout xml – um com o conjunto screenOrientation, e o outro sem. Quando você cairrega sua atividade / visualização, você pode cairregair dinamicamente um ou outro com base em suas preferences salvas. É desagradável não ser limpo, mas deve funcionair.

    Adicione esta linha dentro da functionCreate (). Está funcionando …

     setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.