Affichez rapidement un message à l'utilisateur avec Toast
Dans un code qui s'exécute de manière synchrone avec l'interface utilisateur (donc pas dans un Thread
cou un AsyncTask
par exemple), on peut faire apparaitre de courtes notifications en bas de l'écran via la bibliothèque Toast
. Par exemple, l'affichage suivant :

S'obtient avec la commande :
Toast.makeText(this,"Et hop ! un message à l'écran :D", Toast.LENGTH_LONG).show();
Dans cet appel :
Le premier paramètre est le contexte. Donc une référence vers l'activité courante.
Le second paramètre est le message à afficher.
Le troisième paramètre est la durée de l'affichage souhaité. Il n'y a que 2 valeurs possibles :
Toast.LENGTH_LONG
etToast.LENGTH_SHORT
.Ne pas oublier d'appeler la méthode
show()
sur le toast créé.
Utilisez le moniteur et la bibliothèque Log
pour déboguer vos applications
Lorsque notre application Android crash avec un message "L'application trucmuche s'est arrêtée", on a envie de détruire notre tablette et d'arracher ses câbles à notre ordinateur. Mais l'information de l'exception qui a généré l'erreur se trouve dans les logs. En regardant le moniteur Android, vous pourrez récupérer la pile d'exception Java classique.
Pour ouvrir le moniteur, il suffit de cliquer sur l'onglet "Android Monitor" qui se trouve en bas à gauche de votre fenêtre d'édition.

Vous pouvez vous aussi générer des traces qui iront enrichir ces logs (l'équivalent du bon vieuxSystem.out.println("Je suis passé par ici");
). La bibliothèque Log est assez intéressante, car elle permet de renvoyer une chaine de caractères dans les logs, avec une étiquette et un niveau de sévérité. L'outil rajoutera également un horodatage de l'information.
Par exemple Log.d("Étiquette", "Message");
publiera un message avec une sévérité de debug, tandis que Log.e("Étiquette", "Message");
publiera le même message, mais avec une sévérité d'erreur.
Ensuite, dans le moniteur, il est possible de regarder les logs générés et de les filtrer via le producteur, l'étiquette ou le niveau de sévérité.
C'est très pratique et cela peut être fait depuis tous les processus, sans avoir besoin de se soucier de synchronisation
.
Empêchez la mise en veille de l'écran
Cela se configure séparément au niveau de chaque activité, via l'activation du drapeauFLAG_KEEP_SCREEN_ON
. Il est possible de le faire de manière programmatique ou via le XML du Layout de l'activité.
Côté Java, on fera, dans le onCreate
:
setContentView(R.layout.activity_main);
// ....
// Quelque part après le chargemebt du ContentView :
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
De manière équivalente, il est possible de le faire dans le XML du Layout principal :
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
...
Cette solution permettra de conserver l'écran allumé sans maintenir le CPU éveillé et sans nécessiter de permission.
Bloquez la rotation de l'écran
Cette configuration se fait pour chaque activité, indépendamment. Il est possible de le configurer via le XML ou de manière programmatique. En XML, c'est via le Manifest que l'on rajoutera la proporiété screenOrientation en paramètre de l'activité :
android:screenOrientation="landscape"
android:name="....Activity"
....
Sinon, si l'on préfère le faire via Java, alors il suffit d'appeler la méthodesetRequestedOrientation
, hértiée d'Activity
:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Exécutez une activité en plein écran
Pour alléger l'affichage autour d'une activité, et donc la passer en plein écran, il suffit de changer son style d'affichage. Dans le Manifest, au niveau de la déclaration de l'activité, choisir un style de typeNoTitleBar.Fullscreen
:
android:name="..."
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Personnalisez l'icône de votre application
Les icônes ne sont rien d'autre que des images PNG placées dans les différents dossiers mipmap. Le suffixe des différents nom de dossier mimap correspond à la taille de l'image. Fournir la même image à différentes tailles permet d'afficher l'icône le plus proprement possible sur les différents écrans (avec différentes densités de points). Les différentes résolutions attendues suivant la résolution sont rappelées ici :
Dossier mipmap | Résolution attendue pour l'icône |
mipmap-mdpi | 48x48 pixels |
mipmap-hdpi | 72x72 pixels |
mipmap-xhdpi | 96x96 pixels |
mipmap-xxhdpi | 144x144 pixels |
mipmap-xxxhdpi | 192x192 pixels |
De votre point de vue, il suffit de faire une image à différentes résolutions, et remplacer les icônes par défaut par vos PNG pour que cela fonctionne.