• Aucun résultat trouvé

Valeurs simples

Il est possible de déclarer des chaînes de caractères, des dimensions, des couleurs, des tableaux (de chaînes de caractères ou d’entiers) comme valeurs simples.

Elles sont déclarées dans des fichiers XML. Ces fichiers XML peuvent contenir tous les types à la fois, mais par convention on sépare les ressources en regroupant les mêmes types dans un fichier au nom explicite comme res/values/strings.xml pour regrouper toutes les chaînes de caractères.

Voici un exemple de fichier (dans vos projets, veillez à bien séparer chaque type de ressources).

Code 2-6 : Définition d’un fichier de ressources contenant plusieurs types

Ne pas oublier la déclaration XML dans vos fichiers et veillez impérativement à mettre les balises qui décrivent les ressources à l’intérieur de l’élément racine

<resources> .

Couleurs

Une couleur définit une valeur RVB (rouge, vert et bleu) et une transparence. Cette couleur peut être utilisée à de multiples endroits comme pour définir la couleur d’un

<?xml version="1.0" encoding="utf-8"?>

<EditText id="text"

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="@android:string/unknownName" />

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="nom_application">Suivi des SMS</string>

<color name="couleur_des_boutons">#FFAABBCC</color>

<array name="tableau_entiers">

<item>1765</item>

<item>3</item>

</array>

</resources>

Développer avec Android 54

texte. Il existe différents formats dont la syntaxe globale est la suivante : <color

name=nom_couleur>valeur_de_la_couleur</color>

Les différents formats d’une couleur sont les suivants :

#RGB (Rouge-Vert-Bleu/valeur hexadécimale sur 1 caractère [0,16])

#ARGB (Alpha (transparence)-Rouge-Vert-Bleu)

#RRGGBB (Rouge-Vert-Bleu/valeur hexadécimale sur 2 caractères [0,255])

#AARRGGBB

Exemple de déclaration de chaîne de caractères au format AARRGGBB (valeur pour la transparence puis pour les composantes de rouge, vert et bleu) :

Code 2-7 : Définition d’un fichier de ressources de couleurs

Utilisation des couleurs (exemple avec la déclaration de la couleur bleu_transparent) :

Java : R.color.bleu_transparent

XML : @[package:]color/bleu_transparent

Chaînes de caractères et texte formaté

Les chaînes de caractères avec un format optionnel peuvent être utilisées comme res-sources.

Leur syntaxe est la suivante : <string name=nom_chaine>valeur_de_la_chaine</string>. Ce format assez simple vous permet d’utiliser trois balises HTML standard <b>

(gras), <i> (italique) et <u> (souligné) :

À noter que si vous voulez utiliser des guillemets ou des apostrophes, vous devez les échapper en les faisant précéder du caractère slash ('\') :

Quelques exemples de déclaration de chaînes de caractères : Code 2-8 : Définition d’un fichier de ressources de chaînes de caractères

<resources>

<color name="bleu_transparent">#50ff00FF</color>

</resources>

<string name="ex1">Un texte <b>mis en forme</b></string>

<string name="ex2">Voici l\’application de ce conseil</string>

<resources>

<string name="app_name">Exemple Android Eyrolles</string>

<string name="menu_principal">Menu Principal</string>

</resources>

Création d’applications et découverte des activités CHAPITRE 2 55

Utilisation des chaînes de caractères :

Java : R.string.le_nom

XML : @[package:]string/un_nom

Unités de mesure (« dimensions »)

Les dimensions sont la plupart du temps référencées dans les styles et les mises en page. Elles peuvent servir de constantes entre différents éléments d’écrans. Voici les unités prises en charge par Android : px (pixels), in (pouces), mm (millimètres), pt (points), dp (« density-independant » pixel), sp (« scale-independant pixel »). Vous trouverez plus de détail sur ces unités dans le chapitre 4 sur les interfaces utilisateur.

Voici quelques exemples :

Code 2-9 : Définition d’un fichier de ressources de dimensions

Utilisation des dimensions :

Java : R.dimen.un_nom

XML : @[package:]dimen/un_nom

Images

Fichiers bitmap

Android prend en charge les fichiers bitmap sous différents formats avec une préfé-rence bien affirmée dans la documentation pour le format PNG. Il est cependant possible d’utiliser le format JPEG ou le format GIF (qui est déconseillé par la docu-mentation).

Utilisation des images de type bitmap :

Java : R.drawable.fichier_bitmap

XML : @[package:]drawable/fichier_bitmap

<resources>

<dimen name="taille_texte">5sp</dimen>

</resources>

Resources.getDimen(R.dimen.taille_texte);

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="@dimen/taille_texte"/>

Développer avec Android 56

À partir d’Android 1.6, le kit de développement propose des possibilités étendues pour la gestion des résolutions d’écran hétérogènes dues à des appareils Android équipés de matériels aux tailles et caractéristiques différentes. Pour ce faire, la plate-forme classe les tailles d’écran et leurs résolutions en trois catégories.

Concernant les tailles d’écran, le fichier de configuration dispose d’une balise

<supports-screens> qui grâce aux attributs android:smallScreens,

android:normalScreens et android:largeScreens permet de spécifier quelle(s) taille(s) d’écran votre application supporte.

Concernant les résolutions, chacune de ces catégories (low, medium, high) dispose d’un répertoire où enregistrer vos ressources.

Vous aurez également certainement remarqué que le premier répertoire de la capture d’écran est composé d’un format de langue. On peut en effet également personnaliser les ressources graphiques en proposant des images différentes en fonction de la langue choisie sur l’appareil. Pour plus d’informations, l’internationalisation des applications est traitée au chapitre 5 sur la création d’interfaces utilisateur avancées.

PRÉCISIONS Les fichiers dits bitmaps

Les fichiers dits bitmaps sont des formats d’images qui ont en commun une organisation des données qui code l’image sous forme de champs de bits. Les formats dits vectoriels sont un exemple d’autres possibi-lités de représentation et de stockage des données.

Les formats JPEG, GIF ou PNG sont plus rarement classés dans cette catégorie puisqu’ils utilisent des méthodes de compression. C’est le choix fait dans la documentation Android, nous le suivons ! Le format éponyme BMP (pour BitMaP), que l’on doit à Microsoft, n’en est qu’un cas particulier.

Figure 2–4

Exemple de projet avec des ressources spécialisées

Le guide de développement Android propose un dossier complet sur le développement d’applications compatibles avec des écrans différents :

B http://developer.android.com/guide/practices/screens_support.html

Création d’applications et découverte des activités CHAPITRE 2 57

Images étirables

Les images étirables, dites Nine-Patch, sont des images PNG dans lesquelles on peut définir des portions étirables que le système redimensionnera pour obtenir la taille souhaitée. Leur utilisation :

Java : R.drawable.fichier

XML : @[package:]drawable.fichier

Elles permettent de réaliser des interfaces graphiques très travaillées.

Animations

La déclaration d’animations est plus compliquée, mais le résultat n’est pas décevant avec des possibilités de rotation, de fondu, de translation et de changements de taille.

Les animations sont placées dans un ou plusieurs fichiers dans le répertoire res/

anim. Voici les quatre types d’animations proposées :

<alpha>: permet de faire un fondu ;

<scale>: définit un facteur d’échelle de départ et d’arrivée en X et Y ;

<translate>: permet de déplacer l’élément ;

<rotate>: propose une rotation avec un point pivot et un angle en degrés.

Android propose également des attributs permettant de nombreux réglages comme la durée, la répétition, etc.

Voici un exemple d’animation de type fondu avec la transparence qui passe de 0 à 1 : Code 2-10 : Exemple d’une ressource d’animation

Les animations sont traitées en détail dans le chapitre sur les interfaces graphiques avancées.

Autres ressources

Toutes les ressources n’ont pas été détaillées dans ce chapitre. Voici celles qui seront développées à l’occasion des chapitres de ce livre :

les menus : les menus de l’application peuvent être définis comme ressources XML.

Ce point sera abordé dans le chapitre portant sur la création d’interfaces graphiques ;

<?xml version="1.0" encoding="utf-8"?>

...

<alpha xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator"

android:fromAlpha="0.0"

android:toAlpha="1.0"

android:duration="100" />

...

Développer avec Android 58

la mise en page (layouts ou encore gabarits) : les mises en pages définies dans les fichiers de ressources XML permettent de découper la couche présentation en évitant de construire la mise en page d’une interface graphique dans le code. Ce point sera également abordé dans le chapitre qui vous guidera lors de la création d’interfaces graphique.

Le fichier de configuration Android :