Italian Orientamento Schermo

Star-Dust

Expert
Licensed User
Vorrei impostare l'orientamento dello schermo della mia App in funzione del dispositivo.

Ovvero, se é uno smartphone dev'essere fisso Verticale (Portrait) mentre se é un tablet che possa ruotare (landscape/portrait) nel caso che l'utente ha abilitato la rotazione automatica del display.

Le impostazioni negli attributi sono fissi, Orizzontale, Verticale o "unspecified".

Da codice usando la libreria Phone si può impostare lo schermo Orizzontale o Verticale. Ma é possibile impostare da codice "unspecified"?

Avevo pensato di impostarlo "SetScreenOrientation" e nel caso il device fosse uno smartphone settare SetScreenOrientation come Portrait.
MA.... Una volta che ho impostato con SetScreenOrientation come verticale rimarrà cosi oppure nel caso che abbiamo impostato l'automatico c'é il rischio che diventi orizzontale?

Grazie anticipate.

Regard
 

Filippo

Expert
Licensed User
Io uso, in alcune mie App, questo modo:
1) sul cellulare imposto sempre verticale
2) sul tablet do all'utente la possibilità di cambiare l'orientamento.
In questo modo ti incasini di meno.
 

Star-Dust

Expert
Licensed User
Io uso, in alcune mie App, questo modo:
1) sul cellulare imposto sempre verticale
2) sul tablet do all'utente la possibilità di cambiare l'orientamento.
In questo modo ti incasini di meno.
Grazie Filippo, era quello che volevo ottenere. La domanda é: come?
 

Star-Dust

Expert
Licensed User
Credo di aver risolto, con la libreria Phone.
 
Last edited:

Filippo

Expert
Licensed User
Credo di aver risolto, con la libreria Phone.
No sò se ti può ancora servire, cmq, io uso questo codice:
B4X:
Sub SetTabletLayout
    Dim ph As Phone
    If IsTablet Then
        '7'' or 10'' tablet
        If Starter.manager.getString("rbtOrientationModus") = Starter.language.value("Landscapereversed") Then
            ph.SetScreenOrientation(8) 'Tablet Orizontal-Revese
        else If Starter.manager.getString("rbtOrientationModus") = Starter.language.value("Portrait") Then
            ph.SetScreenOrientation(1) 'Tablet Vertikal
        Else
            ph.SetScreenOrientation(0) 'Tablet Orizontal
        End If
        'Damit die Timer-Liste immer angezeigt wird
        Main.IsListCronoTimerChanged = True
    Else
        'phone
        ph.SetScreenOrientation(1) 'Handy immer Vertikal
    End If
End Sub

Sub IsTablet As Boolean
    If getDeviceSize > 6 Then
        '7'' or 10'' tablet
        Return True
    Else
        'phone
        Return False
    End If
End Sub
 

Star-Dust

Expert
Licensed User
Grazie del suggerimento. Ho scoperto che rimane nel'opzione e non cambia.
Quindi avevo messo questo codice che se il dispositivo é di 7' o più ruota.
B4X:
If GetDeviceLayoutValues.ApproximateScreenSize>=7 Then
        Dim P As Phone
        P.SetScreenOrientation(0)
End If
 
Last edited:
Top