Así que me estoy haciendo una aplicación para Android y quiero forzar la orientación horizontal para las tabletas y la orientación Vertical de los teléfonos. Sin embargo, parece como si yo sólo lo puede hacer un bloqueo de orientación de lo que he visto que derrota el propósito de querer separar los dos orientaciones para los dispositivos.

Tabletas: Paisaje
Teléfonos: Retrato

Para decirlo de una manera más técnica.

Tengo un diseño en «res/layout-xl-tierra» para la jardinería en la tablet y tengo el original diseño en «res/layout» y sólo quiero explícitamente uso diseño-xl-tierra para la tableta. Nada más, básicamente, SÓLO el uso de panorama para xgrande dispositivos.

Gracias!

InformationsquelleAutor rwarner | 2011-10-05

4 Comentarios

  1. 42

    La configuración de una determinada orientación basada en la densidad de los dispositivos que no pueden trabajar porque hay teléfonos que tienen una mayor densidad que las tabletas.

    Lo que hice fue desactivar el dispositivo del sensor de orientación, estableciendo el atributo en la etiqueta de actividad en el archivo de manifiesto como este:

    android:screenOrientation="nosensor"

    Al ejecutar la aplicación, por defecto, la orientación vertical se establece para los teléfonos y el paisaje para tabletas(y por lo tanto vamos a seleccionar el archivo xml de layout-xlarge-land). Y puesto que usted ha establecido un bloqueo de orientación, permanece en esta orientación.

    • Realmente no me funciona, mi Nexus 7 es considerado como teléfono y mostró en el modo de retrato.
    • mi respuesta se refiere a este tema, por favor, compruebe
    • ¿Cómo establecer un bloqueo de orientación?
  2. 2

    Se puede medir el tamaño real (en pulgadas) del dispositivo y, a continuación, establecer mediante programación la orientación mediante:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    o

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    Para obtener el tamaño físico del dispositivo, puede utilizar el código publicado aquí.

    No es 100% exacto, pero es lo suficientemente bueno como para decidir lo que el rey de dispositivo se está ejecutando la aplicación.

  3. 0

    No estoy del todo seguro de lo que estás diciendo, pero parece que sólo debe medir la resolución y actuar en consecuencia. Quiero decir, ¿cómo saber si un teléfono o una tableta OTROS de la resolución de ser diferente?

    • Bueno, supongo que para decirlo de una manera más técnica. Tengo un diseño en «res/layout-xl-tierra» para la jardinería en la tablet y tengo el original diseño en «res/layout» y sólo quiero explícitamente uso diseño-xl-tierra para la tableta. Nada más, básicamente, SÓLO el uso de panorama para xgrande dispositivos.
    • Usted puede especificar en el código de cómo poner la pantalla y tire de la disposición adecuada de xml basado en las dimensiones de la pantalla.
  4. -2

    establecer un diseño llamado llTablet en el menú diseño en la distribución «grandes» de la carpeta de diseños y un llPhone diseño en el menú diseño, en el «diseño» de la carpeta. Por menú estoy refiriendo a la primera presentación que el usuario está introduciendo. A continuación, compruebe si puede hacer referencia a ella. Si usted no puede de referencia llPhone, a continuación, su tableta.

    llPhone = (LinearLayout) findViewById (R.id.llPhone)
    if (llPhone == null) {
     tablet = true;
    }
    else {
     tablet = false;
    }

Dejar respuesta

Please enter your comment!
Please enter your name here