Estoy desarrollando una aplicación para Android cuya orientación no quiero que cambie al modo horizontal cuando el usuario gira el dispositivo. Además, quiero que la orientación bloqueada sea el modo vertical en los teléfonos y el modo horizontal en las tabletas. ¿Se puede lograr esto? En caso afirmativo, ¿cómo? Gracias.
android
user-interface
Ankit Rawat
fuente
fuente
Respuestas:
Solo tiene que definir la propiedad a continuación dentro del elemento de actividad en su
AndroidManifest.xml
archivo. Restringirá su orientación al retrato.Ejemplo:
<activity android:name="com.example.demo_spinner.MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" > </activity>
Además, según el comentario de Eduard Luca a continuación, también puede usar
screenOrientation="sensorPortrait"
si desea habilitar la rotación de 180 grados.fuente
sensorPortrait
si desea que el usuario pueda girar la pantalla 180 grados :)Tienes que agregar la
android:screenOrientation="portrait"
directiva en tuAndroidManifest.xml
. Esto debe hacerse en su<activity>
etiqueta.Además, la guía para desarrolladores de Android establece que:
fuente
Puedo ver que ha aceptado una respuesta que no resuelve su problema por completo:
android:screenOrientation="portrait"
Esto obligará a que su aplicación esté vertical tanto en teléfonos como en tabletas.
Puede forzar la aplicación en la orientación "preferida" del dispositivo usando
android:screenOrientation="nosensor"
Esto provocará que su aplicación se muestre en modo vertical en la mayoría de los teléfonos móviles y horizontal en tabletas. Hay muchos teléfonos con teclados que fueron diseñados para modo horizontal. Forzar su aplicación a retratar puede hacerla casi inutilizable en tales dispositivos. Android también está migrando recientemente a otros tipos de dispositivos. Es mejor dejar que el dispositivo elija la orientación preferida.
fuente
Puede ser ... tienes que identificar si es tableta o teléfono mediante programación ... Primero verifica que el dispositivo sea el teléfono o tableta
¿Determinar si el dispositivo es un teléfono inteligente o una tableta?
Tableta o teléfono - Android
Entonces......
if(isTablet) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }
fuente
<activity android:name=".yourActivity" android:screenOrientation="portrait" ... />
agregar a la actividad principal y agregar
android:configChanges="keyboardHidden"
para evitar que su programa cambie de modo cuando se llama al teclado.
fuente
Establezca la orientación de la pantalla en vertical en el archivo de manifiesto en la etiqueta de actividad.
fuente
android:screenOrientation="locked"
en
<application>
para todas las aplicaciones en<activity>
para la actividad realfuente
Establezca la orientación de la pantalla en vertical en el archivo de manifiesto en la etiqueta de actividad.
Aqui el ejemplo
Debes participar en todas las actividades
Agregar las siguientes líneas en actividad
para retrato
android:screenOrientation="portrait" tools:ignore="LockedOrientationActivity"
para el paisaje
android:screenOrientation="landscape" tools:ignore="LockedOrientationActivity"
Aquí el ejemplo de MainActivity
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="org.thcb.app"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:screenOrientation="portrait" tools:ignore="LockedOrientationActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity2" android:screenOrientation="landscape" tools:ignore="LockedOrientationActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
fuente
Solo agrega:
android:screenOrientation="portrait"
en " AndroidManifest.xml ":
<activity android:screenOrientation="portrait" android:name=".MainActivity" android:label="@string/app_name"> </activity>
fuente