Estoy tratando de hacer que mi aplicación nunca entra en modo de retrato, pero es capaz de cambiar entre el 2 de paisaje, las vistas de la pantalla. Sé que esto se puede hacer fácilmente en Gingerbread (2.3), pero estoy teniendo problemas para hacerlo manualmente para las otras versiones de android, mi código es el siguiente:

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        int orientation = display.getRotation();
        if (orientation == 1) {
            /* The device is rotated to the left. */
            Log.v("Left", "Rotated Left");
        } else if (orientation == 3) {
            /* The device is rotated to the right. */
        Log.v("Right", "Rotated Right");
        } else { 

        }

Mi problema es ¿cómo le doy la vuelta a la x y el eje y de la vista de la pantalla dependiendo de la rotación detectado? ¿Cómo puedo conseguir el asimiento de ellos con el fin de invertir en ellos?

InformationsquelleAutor SamRowley | 2011-01-21

2 Comentarios

  1. 2

    Que yo sepa no hay ningún apoyo para invertida diseño antes de 2.3.
    Así que a menos que se dibuja la pantalla con una costumbre SurfaceView yo diría que usted no puede hacerlo utilizando el estándar de widgets.
    Con una superficie vista, simplemente se necesita para transformar todo el lienzo antes de la representación a la misma.

    Además, usted debe utilizar constantes en el fin de conocer la orientación actual (no hay números mágicos), ver la Configuración de clase de la documentación de la API

    if (orientation==Configuration.ORIENTATION_LANDSCAPE) 
    • Debe haber una manera de configurar el x y el eje manualmente? ¿cómo funciona el sistema operativo android saber para hacerlo por sí mismo?
    • AFAIK no es posible, consulte mail-archive.com/[email protected]/… (un permiso sería necesario, pero no está disponible en el SDK)
    • es posible volver a un valor similar como el getRotation() método, pero no en el contexto de una pantalla, por lo que de acuerdo con el acelerómetro?
    • Sí puede sondear cualquier sensor que desea y deducir la orientación actual de la teléfono: blog.androgames.net/135/android-orientation-tutorial
  2. 1

    getRotation para la clase de «Display» se explica en https://developer.android.com/reference/android/view/Display.html#getRotation()

    getRotation devuelve:

    Surface.ROTATION_0 (no rotation),
    Surface.ROTATION_90,
    Surface.ROTATION_180,
    or Surface.ROTATION_270.

    Por ejemplo, si un dispositivo tiene una forma natural de altura de la pantalla, y el usuario ha cambiado su lado para ir a una orientación horizontal, el valor devuelto puede ser cualquiera de la Superficie.ROTATION_90 o Superficie.ROTATION_270 dependiendo de la dirección en que se fue. El ángulo de la rotación de los gráficos dibujados en la pantalla, que es la dirección opuesta a la de la física de la rotación del dispositivo. Por ejemplo, si el dispositivo se gira 90 grados en sentido antihorario, para compensar la representación será girado 90 grados en sentido horario y por lo tanto el valor devuelto aquí será la Superficie.ROTATION_90.

Dejar respuesta

Please enter your comment!
Please enter your name here