Android 4 : développer ma première application Ressources

Drawable

Le dossier drawable contient l'icône de l'application et cela dans les quatre résolutions (ldpi = basse résolution, mdpi = résolution moyenne, hdpi = haute résolution, xhdpi = très haute résolution).

Layout

Notre application ne contient qu'une seule vue qui sert à afficher "HelloAndroid".

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >
 <TextView

 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"
 android:padding="@dimen/padding_medium"
 android:text="@string/hello_world"
 tools:context=".HelloAndroidActivity" />

</RelativeLayout>


Cette vue ne contient qu'un RelativeLayout, qui sert de conteneur pour la zone de texte (cf. chapitre Création d'interfaces simples - Les layouts) dont le contenu est déclaré dans le fichier strings.xml (cf. chapitre Création d'interfaces simples - Les ressources). Cette zone de texte possède aussi les attributs suivants :

- La largeur et la hauteur de l'élément (cf. chapitre Création d'interfaces simples - Principes).

- La position de l'élément (centré horizontalement et verticalement).

- Une marge interne (padding) pour le texte.

Values

Vous pouvez remarquer les quatre dossiers values :

- values : dossier utilisé par défaut pour stocker les différentes valeurs utiles dans une application (utilisé dans la majorité des cas).
- values-large : tous les fichiers contenus dans ce dossier remplacent les fichiers values par défaut lorsque l'appareil cible possède un grand écran (tablette par exemple).
- values-v11 : tous les fichiers contenus dans ce dossier remplacent les fichiers values par défaut lorsque l'appareil possède la version 3.x d'Android (Honeycomb).
- values-v14 : tous les fichiers contenus dans ce dossier remplacent les fichiers values par défaut lorsque l'appareil possède la version 4.x d'Android (Ice Cream Sandwich ou JellyBean).

Le dossier values contient les fichiers suivants (cf. chapitre Création d'interfaces simples - Les ressources) :

 strings.xml

<resources>
<string name="app_name">HelloAndroid</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_hello_android">HelloAndroidActivity
</string>
</resources>


Ce fichier contient quatre chaînes de caractères :

- Le nom de l'application.
- Le message "Hello world!" à afficher.
- La chaîne de caractères utilisée dans la barre d'action/menu.
- Le titre de l'activité principale.

 dimens.xml

<resources>
<dimen name="padding_small">8dp</dimen>
<dimen name="padding_medium">8dp</dimen>
<dimen name="padding_large">16dp</dimen>
</resources>


Il contient les différentes dimensions utilisées dans l'application (différentes marges internes utilisées).

Elles sont surchargées par le fichier dimens.xml présent dans le dossier values-large afin de spécifier de nouvelles dimensions pour les grands écrans.

Contenu du fichier dimens.xml présent dans le dossier values-large :

 <resources>
<dimen name="padding_small">8dp</dimen>
<dimen name="padding_medium">16dp</dimen>
<dimen name="padding_large">16dp</dimen>
</resources>


 styles.xml

<resources>
<style name="AppTheme" parent="android:Theme.Light"/>
</resources>

Contient le thème utilisé par l'application (cf. chapitre Personnalisation et gestion des événements - Personnalisation).

Ce thème sera différent sur les appareils possédant les API 11 (Honeycomb) et 14 (Ice Cream Sandwich et plus). Cela afin d'utiliser le thème Holo d'Android présent uniquement dans les versions 3.x et 4.x.

Contenu du fichier styles.xml présent dans le dossier values-v11 :

<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light"/>
</resources>

Contenu du fichier styles.xml présent dans le dossier values-v14 :

<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"/>
</resources>