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,
- Mantener la pantalla encendida, żde qué manera?
- Pantalla de bloqueo de Android
- OnDestroy se llama cada vez que se enciende la pantalla
- Androide ¿Cómo estirar las filas en el gridview para llenar la pantalla?
- No se encontró ningún identificador de recursos para XLargeScreens
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.
- Android Obtener dimensiones de pantalla desde el servicio
- ¿Cómo puedo autorun Android Chrome aplicación de pantalla de inicio en el inicio
- Cómo evitar reiniciar la actividad cuando cambia la orientación en Android
- Android Development: Cambio del brillo de la pantalla en el servicio
- Android Desactivar la pantalla
- Color de fondo de la actividad de la pantalla de bienvenida
- ¿Cuál es la diferencia entre Display.getRotation () y Display.getOrientation () aparte del hecho de que Display.getOrientation () está obsoleto?
- Ir a la pantalla de inicio programáticamente
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
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
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.