Les ingénieurs de Google ont prévu le cas et fournissent des librairies pour vous simplifier le développement et essayer d’avoir le même rendu sur vos applications sur l’ensemble des plate-formes.
Comme exemple nous allons voir comment mettre en place une ActionBar et une SplitBar dans une application compatible Android 2.2.
Comment télécharger les librairies Android-support ?
Au sein d’Eclipse allez dans Window > Android SDK Manager pour lancer le manager. Dans les extra sélectionnez Android Support package et cliquez sur Install package.
Ensuite dans votre projet Android vous devez créer un répertoire libs au même niveau que les répertoires src/, res/, etc, et copier le jar correspondant aux fonctionnalités que vous voulez utiliser dans ce répertoire libs. Par exemple <sdk>/extras/android/support/v4/android-support-v4.jar comporte les fonctionnalités apportées dans la V4 de l'API.
Ceci est très pratique pour ajouter des éléments simples rajoutés à l’API. Mais dans notre cas où l’on veut rajouter les éléments pour pouvoir naviguer de la même manière au sein de notre application quelque soit la version de l’OS, nous devrions écrire pas mal de code.
Encore une fois je vous propose une solution assez simple. Afin de montrer un exemple concret à la communauté des développeurs Google créée chaque année une application en marge des Google I/O dont les sources sont disponibles sous GoogleCode sous http://code.google.com/p/iosched/.
Vous pouvez récupérer les sources via Git. Nous allons nous intéressé au projet librairie ActionBarSherlock disponible dans <rep iosched>\libprojects\abs que nous allons monter dans notre environnement de développement.
- Allez dans File > Import… et sélectionnez Android > Existing Android Code Into Workspace
- Sélectionnez le projet télécharger et cliquez sur la case à cocher Copy projects into workspace
- Vous pouvez vérifier dans les propriétés du projet que vous venez de récupérer, que ce dernier est défini comme un projet de librairie
- Reliez ensuite votre projet à la librairie abs en allant dans les propriétés et dans la partie Librairy cliquez sur le bouton Add…
Comment adapter notre projet pour utiliser les
classes fournies dans la librairie abs
Pour pouvoir utiliser une ActionBar dans une classe Activity changez l’héritage de votre classe pour hériter de com.actionbarsherlock.app.SherlockActivity plutôt que android.app.Activity Cette classe fait office d’Adapter pour vous fournir les fonctionnalités attendues sur toutes les versions de l’OS.
La classe permettant de charger un menu est légèrement différente
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSupportMenuInflater().inflate(R.menu.menumatchadder, menu);
return true;
}
Au lieu de
public boolean onCreateOptionsMenu(android.view.Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
De même la classe permettant de gérer les actions utilisateurs devra être reprise
public Boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item);
return true;
}
Au lieu de
public boolean onCreateOptionsMenu(android.view.Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
De même la classe permettant de gérer les actions utilisateurs devra être reprise
public Boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item);
au lieu de
public Boolean onOptionsItemSelected(android.view.MenuItem item);
public Boolean onOptionsItemSelected(android.view.MenuItem item);
La dernière chose avant de pouvoir tester vos modifications est de changer le style utilisé par votre application. En effet la librairie abs utilise ses propres styles pour avoir le même rendu que ce que l’on retrouve sur les API récentes d’Android. Vous devez donc déclarer le style dans un fichier styles.xml situé dans le répertoire /res/values de votre projet.
<style name="Theme.FeuilleDeMatch" parent="Theme.Sherlock.Light"/>
Et ensuite associer ce style à votre application ou les activités concernées dans le fichier AndroidManifest.xml.
Exemple
Vous pouvez retrouver un exemple complet sur Github https://github.com/javamind/FeuilleDeMatch
Et ensuite associer ce style à votre application ou les activités concernées dans le fichier AndroidManifest.xml.
Exemple
Vous pouvez retrouver un exemple complet sur Github https://github.com/javamind/FeuilleDeMatch





Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.