¿Qué carpetas de diseño son necesarias para admitir todos los dispositivos Android?
Estoy desarrollando una aplicación de calculadora que tiene un diseño relativo para el modo retrato. Todos los Botones y TextViews se colocan en esta Disposición Relativa única y un mismo Diseño Relativo para el modo Tierra. He estado cavando la tela por casi 15 días pero no encontré nada relevante. Mi aplicación también tiene soporte para Tablets. MinSDKVer tiene 14 y Target es v21.
Actualmente estoy probando estas carpetas de Layouts
- ¿Cómo mostrar un TextView debajo de otro en Android con archivos XML?
- ¿Por qué la gravedad no funciona cuando se aplica al diseño relativo?
- ¿Cuál es la línea de base en RelativeLayout?
- Android arregla el diseño con la altura en porcentaje
- Expanda TextView con wrap_content hasta que la vista de vecino llegue al final del padre
1: layout-sw400dp (destinado a la Nota 3 y Mate 7)
2: layout-sw600dp (destinado a tabletas de 7 ")
3: layout-sw720dp (destinado a tabletas de 8,9 "y 10")
4: diseño-pequeño-ldpi
5: layout-normal-ldpi
6: layout-normal-mdpi
7: layout-large-mdpi (destinado a teléfonos de 480 × 800 con pantalla> 5 "como Pantech Sky Vega Note)
8: layout-normal-hdpi
9: layout-large-hdpi (destinado a Galaxy Note 2, Galaxy Note y Galaxy Mega)
10: layout-normal-xhdpi
11: layout-normal-xxhdpi
12: layout-large-xxhdpi (destinado a Galaxy Note 4)
13: layout-normal-xxxhdpi (diseñado para Nexus 6 y para otro teléfono QFHD)
Todos estos diseños tienen modo de tierra.
Problema despertar cuando me puse (layout-sw400dp). Nexus 6, Nota 4, Nota 2, el teléfono Galaxy Mega y Large 480 × 800 empezó a utilizar este diseño en lugar de los diseños previstos.
Esto sucede porque swdp tiene una precedencia más alta que layout-normal-xxxx o layout-large-xxxx.
Nota 3 y Mate 7 son dispositivos de 400dpi por lo que he colocado layout-sw400dp. Antes de que todos los dispositivos estaban funcionando perfectamente, excepto, Nota 3 y Mate 7.
Y otro problema son los dispositivos con resolución de 540 × 960.
He intentado el diseño-320dp. Mediante el uso de estos dispositivos xhdpi y xxhdpi dispositivos comenzaron a utilizar este diseño.
También he intentado esta disposición para 540 × 960 pero éstos no trabajaron incluso después de hacer la carpeta seprate para el diseño-largo-puerto-800 × 480.
1: layout-h960dp-w540dp
2: layout-long-port-960 × 540
3: layout-normal-960 × 540
Tomé todas las pantallas de lectura de Android Virtual Device Manager mediante la creación de diferentes dispositivos con especificaciones reales.
He intentado poner manualmente el diseño para los dispositivos 540 × 960 en el archivo de java y tenido éxito pero no quiero hacer eso y no quiero utilizar la disposición lineal tampoco.
He estudiado a fondo "Soporte de pantalla Android diferentes y proporcionar recursos".
Por favor, diga el nombre de todas las carpetas necesarias para el diseño de apoyo a todos los dispositivos de Android o cualquier otra forma eficiente de hacer esto con java.
He subido todos los archivos de recursos en Mediafire que puede descargar Calculator Layout.zip
Cualquier sugerencia y solución será apreciada Gracias de antemano
Lo siento por el inglés porque no es mi lengua nativa.
- Establecer RelativeLayout niño para llenar el espacio no utilizado
- No se puede cambiar el tamaño de RelativeLayout dentro de ScrollView para llenar toda la pantalla
- Especifique Layout Margen superior para la barra de acción de superposición
- Problemas con relleno en RelativeLayout
- ¿Cómo puedo hacer que `View` llene un` RelativeLayout`?
- Superponer una capa Transparente de pantalla completa en Android 4.4 (KitKat)
- Establece el ancho de relativelayout 1/3 del ancho de la pantalla?
- ¿Cómo evitar la vista superpuesta en el diseño relativo en android?
En lugar de utilizar tantas carpetas de diseño, utilice las siguientes carpetas
Para smartphones y phablets
- Layout-mdpi
- Layout-hdpi
- Layout-xhdpi
- Layout-xxhdpi
Para tabletas de 7 "
- Layout-sw600dp
Para tabletas de 10 "
- Layout-sw720dp
Si se centra en crear tantas carpetas de diseño y eventualmente tantos archivos de diseño, se convertirá en un proceso engorroso para cada nueva especificación de dispositivos / pantallas añadida a la familia de Android.
En su lugar, se centran en la optimización de los diseños que está creando para caber en estos cubos. Tales como proporcionar valores en dp y evitar dar valores codificados para tamaño / margen / relleno, uso de archivo de recursos dimens de manera eficiente, etc
Espero que esto le ahorrará algunos esfuerzos redundantes.
En lugar de utilizar tantas carpetas de diseño sencillo, utilice las siguientes carpetas.
Para Smartphones
1.layout: Normal
2.layout-hdpi: utilice el Nexus one, Nexus S
3.layout-xhdpi: utilice el Nexus 4
4.layout-xxhdpi: utilice el Nexus 5
5.layout-xxxhdpi: utilice el Nexus 6
Para tabletas
1.layout-large: utilice el Nexus 7
2.layout-xlarge: utilice el Nexus 9
3.layout-xxlarge: utilice el Nexus 10
Estoy usando Sólo tres diseño de carpeta
– layout-sw600dp (Para tabletas).
– layout-sw360dp (Para teléfonos de tamaño medio).
– diseño (para todos los que tiene menor ancho inferior a 360).
Para el tamaño de pantalla diferente, A continuación se muestra una lista de carpetas de recursos en una aplicación que proporciona diferentes diseños de diseño para diferentes tamaños de pantalla para pantallas de densidad pequeña, media, alta y extra alta.
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 // bitmap for medium density res/drawable-hdpi/my_icon.png // bitmap for high density res/drawable-xhdpi/my_icon.png // bitmap for extra high density
El siguiente código en el manifiesto admite todos los dpis.
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
Para más ver aquí
- ¿Hay una manera de detectar si el apk se almacena en la tarjeta SD o no?
- Diálogo de progreso personalizado Android