Table des matières
Développement Android
API d'Android :
Préparer l'environnement de développement
Malheureusement, au moment d'écrire cette page, il n'y a pas d'environnement de développement clés en main pour le développement d'Android.
Voici ce qui est nécessaire :
- Eclipse pour développeur Java (Eclipse downloads)
- Sur Linux/Ububtu, installer le JDK
- Le SDK d'Android (Download the Android SDK)
- Aller dans Eclipse
- Installer le plugin (
https://dl-ssl.google.com/android/eclipse/
) (voir figure 1.1)
- Exécuter
android
dans le répertoireandroid-sdk-linux_x86/tools
, ceci démarrera Android SDK and AVD Manager.- Aller dans Available Packages et installer le nécessaire (au moins un SDK Platform, documentation, etc)
Créer un nouveau projet
- Dans Eclipse, aller dans File → New… → Project. Choisir Android Project et faire Next.
- Entrer les informations pertinentes dans la fenêtre New Android Project (voir la figure 2.1)
- Créer une machine virtuelle en allant dans Window → Android SDK and AVD Manager
- Dans la fenêtre Virtual Devices, faire New (voir figure 2.2).
- Entrer un nom pour la machine virtuelle
- Choisir un SDK cible
- Entrer de l'espace pour la carte SD (ex : 12 Mio)
- Optionnellement, créer une configuration de debug et de démarrage.
- Aller dans Run → Run Configurations…. Vous pouvez spécifier la machine virtuelle à utiliser dans le projet.
- Même procédure pour la configuration de débogage.
- Le projet est prêt à démarrer, exécuter en cliquant Run.
Comment faire...
Un Toast
Un toast est un simple message de notification pour l'utilisateur.
Toast.makeText(TestActivity.this, "test", Toast.LENGTH_SHORT).show();
Reference : android.widget.Toast
Obtenir la référence d'un objet
Dans le code XML, on crée l'objet graphique (dans res/layout/main.xml
)
<ListView android:id="@+id/myListView" android:layout_width="fill_parent" android:layout_height="wrap_content" />
Et dans le code on déclare la variable qui sera liée à l'objet :
ListView myListView = (ListView) findViewById(R.id.myListView);
Il est possible que des directives d'importation soient nécessaires. Dans Eclipse faire Ctrl+⇧ Shift+O pour importer les espaces de nom nécessaires, dans ce cas ci : import android.widget.ListView;
.
Créer un tableau à partir d'un string-array
Mettre un string-array
sous forme de XML.
<?xml version="1.0" encoding="UTF-8"?> <resources> <string-array name="durations"> <item>15</item> <item>30</item> <item>45</item> <item>60</item> </string-array> </resouces>
Resources res = getResources(); String[] durations = res.getStringArray(R.array.durations);
Layout de base
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World!" /> </LinearLayout>
Widgets
Button
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="@drawable/android_button" />
ImageButton
<ImageButton android:id="@+id/imagebutton" android:src="@drawable/icon_image" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
ImageView
<ImageView android:id="@+id/lightbulb_icon" android:src="@drawable/lightbulb_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="35px" android:layout_y="5px"> </ImageView>
Méthodes
void | setAlpha(int alpha) | Spécifier une valeur de 0 à 255. |
SeekBar
<SeekBar android:id="@+id/seek" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="100" />
Spinner
Utiliser une classe d'Application
On peut utiliser une classe singleton qui dérive com.android.app.Application
pour garder l'état d'une application.
- Il faut d'abord créer une nouvelle classe, exemple
MainController.java
.package org.test.Model; import android.app.Application; import android.content.res.Configuration; public class MainController extends Application { private static MainController singleton; public static MainController getInstance() { return singleton; } @Override public final void onCreate() { super.onCreate(); singleton = this; } }
- Ensuite, dans le manifest de l'application (
AndroidManifest.xml
), il faut entrer le nom de la classe complet dans le champ Name.
- Après, on fait simplement référence au singleton en appelant
getInstance()
:String test = MainController.getInstance().getText();
La classe MainController
est instanciée lors du démarrage de l'application.
Ressources
GUI
Sources
- MEIER, Reto, Professional Android 2 Application Development, Wrox, 2010.