programacion - Diferentes carpetas de valores en Android
manual de programacion android pdf (4)
Tienes que crear una carpeta de valores diferentes para diferentes pantallas -> resource
values-sw720dp 10.1” tablet 1280x800 mdpi
values-sw600dp 7.0” tablet 1024x600 mdpi
values-sw480dp 5.4” 480x854 mdpi
values-sw480dp 5.1” 480x800 mdpi
values-xxhdpi 5.5" 1080x1920 xxhdpi
values-xxxhdpi 5.5" 1440x2560 xxxhdpi
values-xhdpi 4.7” 1280x720 xhdpi
values-xhdpi 4.65” 720x1280 xhdpi
values-hdpi 4.0” 480x800 hdpi
values-hdpi 3.7” 480x854 hdpi
values-mdpi 3.2” 320x480 mdpi
values-ldpi 3.4” 240x432 ldpi
values-ldpi 3.3” 240x400 ldpi
values-ldpi 2.7” 240x320 ldpi
Estoy creando diferentes carpetas de values
en mi aplicación (values, values-ldpi, values-mdpi, values-hdpi, values-xhdpi, values-nodpi, values-w360dp-mdpi)
. Pero algunos dispositivos que pertenecen a la misma categoría. Pero teniendo diferentes tamaños de pantalla. Pero veo dar tamaño de fuente de acuerdo a las densidades del dispositivo en esto, la respuesta proporcionada por @PankajSharma sugiere crear carpetas como-
res/values/dimens.xml
res/values-small/dimens.xml
res/values-normal/dimens.xml
res/values-xlarge/dimens.xml
Quiero saber cuál es la diferencia a mi manera y viceversa. Creo que la respuesta proporcionada por @PankajSharma es fácil. También quiero saber qué camino es mejor?
Cree un diseño único para las pantallas predeterminadas de 4.7 pulgadas (hdpi) en la carpeta de diseño y las dimensiones en la carpeta de valores. Este es tu superconjunto .
Ahora digamos que quiere sus diseños para dispositivos de 7 pulgadas. Crear una carpeta values-sw600dp para 7 pulgadas en orientación Vertical
Ahora digamos que desea sus diseños para dispositivos de 10 pulgadas Crear carpeta values-dw720dp
NOTA: - Para el paisaje simplemente agregue "-land" delante de los nombres de las carpetas.
Ahora digamos que tiene nuevos dispositivos como Xperia SP (4.7 ''y XHDPI) y Nexus 5 (5 "y XXHDPI).
Para estos, puede crear carpetas values-xhdpi y values-xxhdpi y, de forma similar, añadir -land para orientación horizontal.
Espero que tengas el sentido de cómo crear carpetas ...
Ahora su superconjunto está definido en la carpeta de valores. La mayoría de las dimensiones se usarán solo desde aquí. Ahora ejecuta tu aplicación en otros dispositivos. Independientemente de la discrepancia que ocurra, solo agregue esa dimensión específica en su respectiva carpeta de valores
Para verificar desde qué carpeta se usan tus diseños y las imágenes, utiliza mi truco.
Cree cinco cadenas iguales y coloque en ella todas las carpetas de valores como esta: - Pantalla de pantalla predeterminada 4.7 Pantalla XHDPI Pantalla MDPI
Cree cinco carpetas dibujables, la mayoría de ellas ya estarán allí: - drawable-hdpi, drawable-mdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi Coloque las capturas de pantalla a continuación en su carpeta respectiva bajo el mismo nombre
Así es como se ve mi carpeta res y estoy soportando todos los dispositivos desde la pantalla 4.7 y superior:
El enfoque que está utilizando es un enfoque válido, pero un poco desactualizado. Desde HoneyComb
, hay una nueva forma de arreglar todo esto. Su carpeta de recursos ahora debería verse así:
Consulte el enlace que publiqué y familiarícese con el concepto de Smallest Width
.
Espero que esto ayude :)
EDITAR: Añadiendo a esta publicación, intenta establecer algún tipo de estandarización en tu dimens.xml
, algo como esto:
Hacer esto hace que sea más fácil mantener el código, además de que reduce la cantidad de carpetas de dimen
. Normalmente, en lugar de tener values-hdpi
, values-xhdpi
, etc., los archivos como values-sw480dp-xhdpi
pueden tener más valores para ajustar, pero de nuevo todo esto es contextual.
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<!-- Various Text Sizes -->
<dimen name="text_size_extra_small">10sp</dimen>
<dimen name="text_size_small">12sp</dimen>
<dimen name="text_size_medium">14sp</dimen>
<dimen name="text_size_normal">16sp</dimen>
<dimen name="text_size_large">18sp</dimen>
<dimen name="text_size_extra_large">20sp</dimen>
<dimen name="text_size_super_large">50sp</dimen>
<dimen name="text_size_super_extra_large">70sp</dimen>
<!-- Various Paddings -->
<dimen name="padding_very_short">2dp</dimen>
<dimen name="padding_short">5dp</dimen>
<dimen name="padding_medium">7dp</dimen>
<dimen name="padding_normal">10dp</dimen>
<dimen name="padding_long">35dp</dimen>
<dimen name="padding_long_gamename">55dp</dimen>
<dimen name="padding_extra_long">15dp</dimen>
<!-- Various Margins -->
<dimen name="margin_very_short">5dp</dimen>
<dimen name="margin_med_short">5dp</dimen>
<dimen name="margin_short">10dp</dimen>
<dimen name="margin_meium">15dp</dimen>
<dimen name="margin_short_player_review">10dp</dimen>
<dimen name="margin_meium_player_review">15dp</dimen>
<dimen name="margin_normal">20dp</dimen>
<dimen name="margin_long">25dp</dimen>
<dimen name="margin_vshape">25dp</dimen>
<!-- Various Width -->
<dimen name="width_extra_min">120dp</dimen>
<dimen name="width_profile_messages_images">70dp</dimen>
<dimen name="width_half">240dp</dimen>
<dimen name="width_normal">300dp</dimen>
<dimen name="width_extra_large">360dp</dimen>
<dimen name="width_popup_window">180dp</dimen>
<!-- Various Height -->
<dimen name="height_very_short_shadow">1dp</dimen>
<dimen name="height_short">40dp</dimen>
<dimen name="width_ListHalf">260dp</dimen>