01:28
.Wassim El Mririe && Ramzi Essid
No comments
Un splash screen peut être très utile. Il permet de rendre votre application plus professionnel si celui ci est assez design.Cela vous permet aussi de charger votre interface. D’autant plus si vous avez besoin de télécharger des fichiers via la 3G avec les problèmes de débits que cela suppose.
Notre classe implémente Runnable, ce qui nous permet d’implémenter la fonction run(). En gros on pourra lancer un thread avec this en paramètre. Ce thread effectuera les opération de préparation de l’interface.Par exemple, télécharger des données via la 3G pour replir un adapter).
Puis notre fonction handleMessage() terminera les opérations sur l’interface: pour nous, ce sera cacher l’ImageView du splashscreen mais cela aurait pu être initialiser un adapter avec les données précédemment chargées.
public class splashScreen extends Activity implements Runnable{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// On lance le thread
launchWait();
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// On cache l'image
((ImageView)findViewById(R.id.img_splash))
.setVisibility(ImageView.INVISIBLE);
}
}
private void launchWait(){
// On lance le thread
Thread t = new Thread(this);
t.start();
}
@Override
public void run() {
/*
C'est ici qu'on effectue les différentes opérations
pouvant geler l'interface
graphique si elles avaient été faites dans la méthode
onCreate().
*/
/*
On envoi un signal à notre handler ce qui exécutera la fonction handleMessage.
Le paramètre (ici 0) est un identifiant qui peut être testé dans les fonction handlerMessage.
Nous aurions pu tout aussi bien utilisé plusieurs fois notre handler. Dans ce cas il aurait mieux valu utiliser des ID en constante.
*/
handler.sendEmptyMessage(0);
}
}
Ici, dans le layout XML, l’ImageView du splash est deja visible. On ne fais donc que la cacher une fois toutes nos opérations finies.
Voilà ! A bientôt !
0 commentaires:
Enregistrer un commentaire