[DEV] – Modificare l’orientamento dello schermo attraverso le Preferences

[DEV] – Modificare l’orientamento dello schermo attraverso le Preferences

Se nelle nostre applicazioni vogliamo dare la possibilità all’utente di scegliere una volta per tutte l’orientamento dello schermo (senza che gli si rigiri ad ogni piccolo movimento), bastano poche righe di codice:

Nel nostro file delle preferences basta aggiungere una ListPreferences che indichi i valori da scegliere


<ListPreference android:key="screenOrientation" android:title="Screen Orientation"
android:summary="Default orientation"
android:entries="@array/screenOrientation" android:entryValues="@array/screenOrientationValue" />

I valori sono indicati nel file di risorse e sono:


<string-array name="screenOrientationValue">
<item>DEFAULT</item>
<item>LANDSCAPE</item>
<item>PORTRAIT</item>
</string-array>

<string-array name="screenOrientation">
<item>@string/screenOrientation_default</item>
<item>@string/screenOrientation_landscape</item>
<item>@string/screenOrientation_portrait</item>
</string-array>

che danno la posibilità di selezionare la modalità landscape (orizzontale), portrait (verticale), o default (lasciare invariate le impostazioni)

Poi all’interno di ogni nostra activity (o solo quelle per cui vogliamo rendere valida l’impostazione) basta aggiungere queste semplici righe di codice:


SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
 String screenOrientation = pref.getString(Const.PREF_KEY_screenOientation, "DEFAULT");

 if ("PORTRAIT".equals(screenOrientation)) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
 if ("LANDSCAPE".equals(screenOrientation)) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Quindi se il valore della Preferences è DEFAULT nessuna delle condizioni si verifica e rimane il comportamento di default

Tags: , ,

2 Commenti

  1. luca81

    Ciao,molto interessante l’articolo…volevo chiederti dove trovo questo file e se ne esiste uno per ogni applicazione.
    Ciao e grazie!!

    • frusso

      Ciao, grazie, … ma mi sa che non mi sono spiegato bene ;)

      Questo è un articolo tecnico rivolto ai programmatori che scrivono applicazioni android, non un tips per tutte le applicazioni.

      Quindi non c’è nulla da scaricare o configurare, chi sviluppa (e vuole aggiungere questa feature ai suoi programmi), deve integrare il suo codice con quello riportato nell’articolo.

      ciao

Commenta!