samsung - rotar pantalla android apk
¿Cómo puedo rotar la visualización solo en modo horizontal en android? (4)
Quiero que mi vista rote solo en modo horizontal, en el sentido de las agujas del reloj y en sentido contrario.
Leí sobre el único sentido contrario a las agujas del reloj para Android <2.2 y eso no es un problema, mi aplicación será de +2.2 por ahora.
Modifico mi manifiesto para capturar cambios de configuración
android:configChanges="keyboardHidden|orientation"
Anulo mi actividad para capturar cambios de configuración
@Override
public void onConfigurationChanged(Configuration newConfig) {
y sé cómo captar orientación
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int rot = display.getRotation();
pero ... no sé cómo activar la orientación de paisaje apropiada, estoy haciendo esto:
if (rot == Surface.ROTATION_90 || rot == Surface.ROTATION_270){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
pero siempre gire a la izquierda :-(
¿Cómo puedo configurar la orientación horizontal izquierda y derecha?
EDITAR
Si establezco orientación en manifiesto:
android: screenOrientation = "landscape"
El diseño de la actividad permanece siempre en "paisaje izquierdo", y quiero un cambio entre el paisaje izquierdo y derecho: S
¿Ha intentado agregar esto a su manifiesto dentro de la etiqueta de actividad para ver si se maneja automáticamente?
android:screenOrientation = "landscape"
AndroidManifest.xml -> Aplicación -> seleccionó su actividad -> Orientación de pantalla = paisaje.
En su declaración de actividad manifiesta, en lugar de
android:screenOrientation = "landscape"
utilizar
android:screenOrientation = "sensorLandscape"
Si está creando su aplicación para Android 2.3 y más reciente, debe establecer el atributo de manifiesto como
android: screenOrientation = "sensorLandscape"
y su aplicación girará a la posición horizontal (izquierda o derecha).
Si está creando su aplicación para Android 2.2 y versiones anteriores, pero desea ejecutarla en Android 2.3 y más reciente como una configuración de "sensorLandscape", podría intentar algo como esto
public static final int ANDROID_BUILD_GINGERBREAD = 9;
public static final int SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= ANDROID_BUILD_GINGERBREAD) {
setRequestedOrientation(SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
...
Esta fue la mejor manera de manejar los cambios de orientación del paisaje en mi caso. No pude encontrar una mejor manera de rotar la pantalla a la orientación horizontal izquierda o derecha para Android 2.2 y versiones anteriores. Intenté leer las orientaciones de los sensores y establecer la posición del paisaje según eso, pero me parece que tan pronto como se llama "setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);" el sensor se apaga (para su aplicación / actividad) y no puede leer la orientación a través del sensor.
Por cierto, no es necesario que anule "onConfigurationChanged (Configuration newConfig)" para que todo esto funcione correctamente.