Quiero que mi punto de Vista gira sólo en el modo horizontal, hacia la derecha y hacia la izquierda.

Que he leído acerca de la única izquierda para android < 2.2 y eso no es un problema, mi Aplicación será de +2.2 por ahora.

Puedo modificar mi manifiesto para la captura de los Cambios de Configuración

android:configChanges="keyboardHidden|orientation"

Puedo anular mi actividad para la captura de los Cambios de Configuración

@Override
public void onConfigurationChanged(Configuration newConfig) {

y sé cómo atrapar orientación

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int rot = display.getRotation();

pero… no sé cómo activar la adecuada orientación horizontal, estoy haciendo esto:

if (rot == Surface.ROTATION_90 || rot == Surface.ROTATION_270){
  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

pero siempre giran a counterclocwise 🙁

¿Cómo puedo ajustar a la izquierda y a la derecha de la orientación del paisaje?

EDITAR

Si puedo configurar la orientación en el manifiesto:

android:screenOrientation=»paisaje»

La actividad del diseño permanece siempre en «paisaje», y quiero cambiar entre la izquierda y la derecha paisaje :S

  • Tengo el mismo problema con mi solicitud. Estoy usando API8 y no puedo encontrar una manera para permitir sólo a modo de paisaje (tanto en CW & CCW)
InformationsquelleAutor rubdottocom | 2011-03-21

4 Comentarios

  1. 58

    Si usted está construyendo su app para Android 2.3 y posteriores que se debe establecer el atributo manifest como

    android:screenOrientation=»sensorLandscape»

    y su aplicación va a girar a izquierda o derecha) posición de paisaje.

    Si usted está construyendo su app para Android 2.2 y mayores, sino que desea que se ejecute en Android 2.3 y versiones más recientes como «sensorLandscape» de configuración, usted 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 el paisaje de los cambios de orientación en mi caso. Yo no era capaz de encontrar una mejor manera de rotar la pantalla a la izquierda o a la derecha paisaje orientaciones para Android 2.2 en adelante.
    Traté de lectura del sensor de orientación y ajuste de la posición de paisaje en base a eso, pero a mí me parece que tan pronto como se llame «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, usted realmente no necesita reemplazar el «onConfigurationChanged(Configuración newConfig)» para que todo esto funcione correctamente.

    • No hay necesidad de definir su propio pan de jengibre y el sensor de paisaje de fint variables int, el uso de Crear.VERSION_CODES.Pan de JENGIBRE y ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
    • Usted tiene que definir sus propias variables porque la generación.VERSION_CODES.Pan de JENGIBRE y ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE (todavía) no están definidos en Android 2.2 y mayores plataformas (debido a que no existía en ese entonces obviamente). Esta revisión es ción para trabajar en Android 2.2 y Android más antiguos sistemas operativos.
    • El Android más antiguos de las bibliotecas de no apoyar la Construcción.VERSIÓN.SDK_INT, así que uso Entero.parseInt(android.os.Construir.VERSIÓN.SDK). También el android:screenOrientation=»paisaje» tiene que ser dejado en el manifiesto (que no se menciona en la respuesta aquí).
    • Creo que hay 3 modos de nosotros podría utilizar para el modo de paisaje: paisaje, reverseLanscape, sensorLandscaped Esta es realmente impresionante!
  2. 6

    En su manifiesto de la actividad de la declaración, en lugar de

    android:screenOrientation = "landscape"

    uso

    android:screenOrientation = "sensorLandscape"

  3. 1

    Has probado a añadir esto a su manifiesto dentro de la actividad de la etiqueta para ver si se maneja de forma automática?

    android:screenOrientation = "landscape"
    • Cuando hago que la actividad se inicia en modo horizontal, pero siempre la izquierda paisaje con rueda de desplazamiento en el derecho.
    • Es este en uno o varios dispositivos, y que?
    • Nexus One 2.3.3, el proyecto se configura como API 8
  4. 0

    AndroidManifest.xml -> Aplicaciones -> selecciona tu actividad -> la orientación de la Pantalla = paisaje.

Dejar respuesta

Please enter your comment!
Please enter your name here