La carpeta res/values se usa para almacenar los valores de los recursos que se usan en muchos proyectos de Android para incluir características de color, estilos, dimensiones, etc.
A continuación se explican algunos archivos básicos, contenidos en la carpeta res/values:
- colors.xml : El colors.xml es un archivo XML que se utiliza para almacenar los colores de los recursos.
Un proyecto de Android contiene 3 colores esenciales, a saber:
- colorprimario
- colorPrimarioOscuro
- acento de color
Estos colores también se utilizan en algunos recursos predefinidos del estudio de Android. Estos colores debían configurarse como opacos; de lo contrario, podrían surgir algunas excepciones.
A continuación se menciona la implementación del recurso colors.xml:
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<resources>
<color name=
"colorPrimary"
>#1294c8</color>
<color name=
"colorPrimaryDark"
>#1294c8</color>
<color name=
"colorAccent"
>#FF4081</color>
<color name=
"text_color"
>#
555555
</color>
<color name=
"colorText"
>#FFFFFF</color>
<color name=
"colorTextHint"
>#51d8c7</color>
</resources>
Nota: También es posible definir diferentes colores basados en usuarios para diferentes tipos de recursos.
- dimens.xml : el dimens.xml se usa para definir las dimensiones de los diferentes widgets que se incluirán en el proyecto de Android. Es una buena práctica de codificación usar dimens.xml para definir una dimensión en lugar de simplemente escribir la dimensión en el recurso, debido al hecho de que si alguna vez surge la necesidad de cambiar la dimensión, en lugar de hacer un cambio en todo, solo el dimens.xml se puede cambiar una vez y el cambio se refleja en todos.
A continuación se menciona la implementación del recurso dimens.xml:<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name=
"activity_horizontal_margin"
>16dp</dimen>
<dimen name=
"activity_vertical_margin"
>16dp</dimen>
<dimen name=
"nav_header_vertical_spacing"
>8dp</dimen>
<dimen name=
"nav_header_height"
>176dp</dimen>
<dimen name=
"fab_margin"
>16dp</dimen>
</resources>
También es posible aplicar dimensiones definidas por el usuario.
Nota: Recuerde siempre la diferencia entre usar dp o sp. Generalmente use sp para el tamaño de fuente y dp para otros. - strings.xml : uno de los archivos de valores más importantes y ampliamente utilizados es strings.xml debido a su aplicabilidad en el proyecto de Android. La función básica de strings.xml es definir las strings en un archivo para que sea fácil usar la misma string en diferentes posiciones en el proyecto de Android y además hace que el proyecto se vea menos desordenado.
También podemos definir una array en este archivo.
A continuación se menciona la implementación del recurso strings.xml:<resources>
<string name=
"app_name"
>Workshop app</string>
<string name=
"navigation_drawer_open"
>Open navigation drawer</string>
<string name=
"navigation_drawer_close"
>Close navigation drawer</string>
<string name=
"action_settings"
>Settings</string>
<string name=
"hello_blank_fragment"
>Hello blank fragment</string>
<string name=
"date"
>Date:</string>
<string name=
"timings"
>Timings:</string>
</resources>
Android Studio da una advertencia en el diseño xml si se usa una string en ese archivo, por lo que es una buena práctica almacenar todas las strings codificadas en el archivo strings.xml.
- styles.xml : Otro archivo importante en la carpeta de valores es el styles.xml donde se definen todos los temas del proyecto de Android. El tema base se proporciona de forma predeterminada y tiene la opción de personalizar o realizar cambios en el tema personalizado también. Cada tema tiene un atributo principal que define la base del tema. Hay muchas opciones para elegir según la necesidad del proyecto de Android.
A continuación se menciona la implementación del recurso styles.xml:<resources>
<!-- Base application theme. -->
<style name=
"AppTheme"
parent=
"Theme.AppCompat.Light.DarkActionBar"
>
<!-- Customize your theme here. -->
<item name=
"colorPrimary"
>
@color
/colorPrimary</item>
<item name=
"colorPrimaryDark"
>
@color
/colorPrimaryDark</item>
<item name=
"colorAccent"
>
@color
/colorAccent</item>
</style>
<style name=
"AppTheme.NoActionBar"
>
<item name=
"windowActionBar"
>
false
</item>
<item name=
"windowNoTitle"
>
true
</item>
</style>
<style name=
"AppTheme.AppBarOverlay"
parent=
"ThemeOverlay.AppCompat.Dark.ActionBar"
/>
<style name=
"AppTheme.PopupOverlay"
parent=
"ThemeOverlay.AppCompat.Light"
/>
</resources>
Si alguna característica utilizada en los archivos en la carpeta de valores no coincide con la versión mínima de SDK del usuario, Android Studio ofrece la opción de definir un archivo separado con el mismo nombre pero para un nivel de API diferente. Por ejemplo, estilos y estilos (v21) [para niveles de API de 21 y superiores].