Configuración de la orientación de la pantalla Actividad de Android con values.xml

Estoy intentando configurar la orientación de la pantalla de la actividad con valores del archivo de XML en res / values. Me gustaría hacer eso porque, más o menos, necesito la misma actividad tanto para tableta (paisaje) como para smartphone (retrato).

Primer intento

Manifiesto:

<activity android:name="..." android:screenOrientation="@string/defaultOrientation"/> 

Config.xml:

 <string name="defaultOrientation">portrait</string> 

Pero con esta aplicación de configuración no aparecerá en el dispositivo y devolverá este error:

Java.lang.NumberFormatException: Invalid int: "portrait"

Segundo

OK, así que simplemente lo cambié a este

Manifiesto:

 <activity android:name="..." android:screenOrientation="@integer/defaultOrientation"/> 

Config.xml:

 <integer name="defaultOrientation">1</integer> 

Utilicé 1 porque ActivityInfo.SCREEN_ORIENTATION_PORTRAIT == 1.

Pero esto tampoco está funcionando. Parece que puedo modificar algunos valores como el nombre de la aplicación / actividad, pero no la orientación de la pantalla?

Sé que puedo solucionarlo por código, pero por alguna razón se siente que esto también debe ser obtenible por el archivo de valores XML.

Es de alguna manera posible lograrlo por valores XML?

El mismo problema para mí con su segundo exlanation y utilicé una solución por el código que usted no está buscando.

He añadido 4 carpetas de valores en la carpeta res. "Valores", "valores-v11", "valores-v14" y "valores-sw720dp"

Todas las carpetas de valores tienen "integers.xml".

"Valores" y "valores-v14" tienen valor 1 que es orientación vertical;
<integer name="portrait_if_not_tablet">1</integer> .

"Values-v11" y "values-sw720dp" tienen valor 2 que es la orientación del usuario;
<integer name="portrait_if_not_tablet">2</integer> .

Y en el archivo Manifest, la actividad tiene una propiedad como;
android:screenOrientation="@integer/portrait_if_not_tablet" .

Todos los "valores", "valores-v11", "valores-v14" están funcionando como se esperaba pero "values-sw720dp"!

Mientras que la depuración me di cuenta de que el valor de portrait_if_not_tablet viene como se espera en un dispositivo sw720dp (con API 16) con getResources (). GetInteger (R.integer.portrait_if_not_tablet), pero cuando revisé el valor de la orientación actual por getRequestedOrientation () valor.

 int requestedOrientation = getResources().getInteger(R.integer.portrait_if_not_tablet); int currentOrientation = getRequestedOrientation(); if (currentOrientation != requestedOrientation) { setRequestedOrientation(requestedOrientation); } 

Así que utilicé un bloque de código en onCreate método de mis actividades para resolver esto.

  • Android XML dibujable degradado transparente
  • GetContentResolver () y getWindow () en un DialogFragment
  • La imagen no aparece en HTC One M8
  • Android nivel 21 compatibilidad hacia atrás? (Desde que salió la nueva actualización del SDK)
  • ImageView está pixelado en dispositivos Android más antiguos
  • Creación de un WebService ASP.net que devuelve JSON en lugar de XML
  • Android Studio - Importación de la biblioteca Simple-Xml
  • ¿Definir el logotipo personalizado para ActionBar (diferente de Logo) en XML?
  • Android, envío de XML a través de HTTP POST (SOAP)
  • API de gráficos para Android
  • Cómo hacer TextView del mismo tamaño sin importar los textos dentro
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.