Creación de la aplicación de soporte para varias pantallas Android

Estoy creando una aplicación en Android que debe admitir múltiples pantallas.

Para este propósito he leído muchas respuestas y una que me gusta más es el estado que puedo crear carpetas diferentes en la carpeta res por el siguiente nombre,

Para pantallas pequeñas de diseño pequeño ,

Para pantallas grandes , grandes ,

Para pantallas extra grandes, layout-xlarge

Y tengo que crear diferentes diseños para diferentes pantallas con el mismo nombre. Eg mylayout.xml

Y tengo que poner el siguiente código en el archivo manifest.xml

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" /> 

Y finalmente sólo necesito escribir siguientes líneas en mi archivo de actividad,

  setContentView(R.layout.mylayout); 

Ahora, cuando ejecuto esta aplicación en pantallas de diferentes tamaños, debería adquirir diseños de diferentes carpetas según la resolución de la pantalla.

Pero esto no está sucediendo en mi caso. Sólo toma el diseño que se define en la carpeta de diseño .

Por favor, alguien me explica por qué sucede esto y cómo puedo resolver este problema para que mi aplicación se puede ejecutar con eficacia en todas las pantallas de tamaño.

Prueba como:

  • Layout-sw320dp
  • Layout-sw480dp
  • Layout-sw600dp
  • Layout-sw720dp

en lugar de

  • Diseño-pequeño,
  • Disposición-grande etc …

Por favor, consulte el siguiente enlace:

http://developer.android.com/guide/practices/screens_support.html Para diferentes tamaños de pantalla, A continuación se muestra una lista de directorios de recursos en una aplicación que proporciona diferentes diseños de diseño para diferentes tamaños de pantalla y diferentes diseños de mapa de bits para pequeños, medios , Alta y alta densidad. Usted podría utilizar el diverso tamaño de los archivos de la disposición en la carpeta del res y también varía para las imágenes drawable basadas en la densidad.

  res/layout/my_layout.xml // layout for normal screen size ("default") res/layout-small/my_layout.xml // layout for small screen size res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra large screen size res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation 

Introduzca aquí la descripción de la imagen Res / drawable-mdpi / my_icon.png // mapa de bits para densidad media res / drawable-hdpi / my_icon.png // mapa de bits para alta densidad res / drawable-xhdpi / my_icon.png // mapa de bits para densidad extra alta

 <compatible-screens> <screen android:screenDensity="ldpi" android:screenSize="small" /> <screen android:screenDensity="mdpi" android:screenSize="normal" /> <screen android:screenDensity="xhdpi" android:screenSize="large" /> <screen android:screenDensity="xhdpi" android:screenSize="xlarge" /> </compatible-screens> 

Y seguido por cualquier actividad utilizar esta líneas ..

Android: configChanges = "orientación | screenSize | keyboardHidden"

En la convención de nombres de carpeta de valores como layout-small solo funciona para dispositivos con una api version less than 3.1 . Debe crear archivos de valores con nombres como layout-sw600dp para un nivel de api superior a 3.1. Lea esto http://developer.android.com/guide/practices/screens_support.html3.1api

Introduzca aquí la descripción de la imagen Como esto debe crear layout-sw600dp, layout-sw720dp para cada tipo de dispositivo. Layout-sw600dp significa que este diseño funciona para dispositivos con el ancho más pequeño de 600dp Si tiene las carpetas layout-600dp y layout-sw720dp. La primera carpeta de diseño funciona para dispositivos con el ancho más pequeño de 600dp (7 pulgadas) a 720dp y la segunda funciona para dispositivos con el ancho más pequeño por encima de 720dp (tableta de 10 pulgadas).

Si su versión mínima requerida está por encima de 3.1, no necesita tener carpetas layout-small, layoutxLarge. De lo contrario hay que considerar ambos tipos de layout fromats.

Esta es una lista de comprobación rápida sobre cómo puede asegurarse de que su aplicación se muestre correctamente en diferentes pantallas:

Utilice wrap_content, fill_parent, o dp al especificar dimensiones en un archivo de diseño XML. No utilice valores de pixel codificados en el código de la aplicación (archivos .java ). No utilice AbsoluteLayout (está obsoleto en Android 1.5 ). En su lugar, debe utilizar RelativeLayout , que utiliza posicionamiento relativo para establecer sus vistas secundarias. Suministro de mapas de bits alternativos para diferentes densidades de pantalla.

Tómese el tiempo y lea estas pantallas_support o para obtener una idea mejor, consulte Cómo Android encuentra el recurso que se adapta mejor para que sepa dónde colocar sus recursos.

  • ¿Cómo puedo tomar una captura de pantalla de un video, en android
  • Cómo controla la orientación de la pantalla del dispositivo Android
  • Pantalla de bloqueo personalizada para Android
  • Captura continua de la pantalla de Android para su procesamiento en una aplicación
  • Android tomar la captura de pantalla y compartirla
  • Android: ¿Cómo puede hacer PreferenceScreen personalizado?
  • screen.width + android
  • Iluminar la pantalla cuando la notificación recibió android
  • Nombres de pantalla personalizados de Google Analytics en Easy Tracker
  • Android, mdpi densidad pero diferentes pantallas
  • ¿Cómo puedo grabar la pantalla del dispositivo Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.