API d'interface utilisateur

L'API d'interface utilisateur vous permet de créer des interfaces utilisateur pour les écrans BlackBerry®.

Les applications avec interface utilisateur mettent en œuvre net.rim.device.api.ui.UiApplication, qui est une sous-classe de net.rim.device.api.system.Application. Un objet UIApplication maintient une pile d'objets Screen. Lorsqu'il transfère des objets Screen sur la pile, il les place au-dessus de tout autre objet Screen déjà sur la pile. Lorsque l'application ôte un objet Screen de la pile, elle réorganise les objets Screen sous-jacents comme nécessaire. Seul l'écran au-dessus de la pile reçoit des événements d'entrée.

Les trois principaux éléments d'interface utilisateur sont Field (champ), Manager (gestionnaire) et Screen (écran).

Champs

Un objet Field représente une zone rectangulaire contenue par un gestionnaire. Chaque commande, telle qu'un bouton, correspond à une instance d'un champ. Vous ne pouvez pas instancier l'objet Field directement, mais vous pouvez utiliser les champs préconçus et créer des champs personnalisés. Chaque champ génère la commande et traite l'entrée utilisateur. Voici quelques-uns des champs préconçus les plus utilisés :

  • ButtonField : fournit un bouton simple.
  • LabelField : fournit une étiquette textuelle.
  • TextField : fournit une étiquette textuelle.
  • DateField : permet d'enregistrer une date et de l'afficher dans différents formats dans un champ (par exemple, 17/11/2011).
  • MapField : permet d'afficher une carte dans un champ.
  • BrowserField : permet d'afficher du contenu Web dans un champ.

Vous pouvez créer des champs personnalisés en étendant la classe Field.

Responsables

Un objet Manager, également appelé gestionnaire de disposition, traite la disposition et le défilement des champs. Un objet Manager contient des champs. Il y a plusieurs sous-classes d'objets Manager, traitant des types spécifiques de disposition de champs.

Plusieurs gestionnaires pratiques sont définis dans le progiciel net.rim.device.api.ui.container. Les gestionnaires suivants sont les plus fréquemment utilisés :

Vous déclarez un gestionnaire de disposition au premier niveau de votre écran puis y ajoutez des champs. Les gestionnaires de disposition étant des sous-classes de l'objet Field, ils peuvent être intégrés dans d'autres gestionnaires de disposition. Vous pouvez également définir votre propre gestionnaire de disposition.

Écrans

Un objet Screen (écran) est le conteneur de niveau le plus élevé pour les éléments d'interface utilisateur représentant ce que vous voulez afficher. Les écrans peuvent contenir des champs (tels que des champs textuels), des gestionnaires de disposition, boutons radio et listes déroulantes.

L'API d'interface utilisateur propose deux types principaux d'objets Screen :

Vous pouvez afficher des informations complémentaires pour votre application dans un écran contextuel sans interrompre l'exécution de l'application. Par conséquent, vous n'avez pas besoin de quitter l'écran pour y revenir par la suite. Par ailleurs, vous pouvez hiérarchiser les objets PopupScreen transférés au sommet de la pile d'affichage en appelant pushGlobalScreen(Screen, int, int).

Menus

Les smartphones BlackBerry organisent les commandes sous forme de menus contextuels accessible à l'aide de la touche Menu. Les éléments de menu sont des instances de MenuItem. Vous pouvez personnaliser le menu ouvert pour votre application. Vous pouvez :

  • ajouter ou supprimer des éléments de menu selon l'état d'écran ou de l'application lorsque le menu s'ouvre ;
  • indiquer l'ordre des éléments de menu ;
  • indiquer l'ordre des éléments de menu et l'élément de menu sélectionné par défaut.

Écouteurs

L'API d'interface utilisateur contient un modèle d'écouteur d'événement générique qui vous permet de déployer des écouteurs pour de nombreux types d'événements, par exemple la modification d'un champ ou lorsque l'utilisateur appuie sur une touche, clique sur le pavé tactile ou la trackball ou encore touche l'écran tactile. Vous pouvez définir un écouteur pour un objet Field en appelant setChangeListener() de la classe Field.

Modèle de conception Modèle-Vue-Contrôleur

Certains composants standard de l'API d'interface utilisateur, y compris les indicateurs d'activité et de progression du progiciel net.rim.device.api.ui.component.progressindicator ainsi que les listes et tableaux du progiciel net.rim.device.api.ui.component.table, utilisent le modèle de conception Modèle-Vue-Contrôleur (MVC) comme modèle de conception.

Avant d'utiliser ces composants, vous devez connaître le modèle de conception MVC. De nombreux documents papier et ressources en ligne sont disponibles pour en savoir plus sur le modèle MVC.

Écrans modaux

Les objets Screen sont transférés sur la pile d'affichage par les méthodes pushScreen() et pushModalScreen() de la classe UiApplication. L'objet pushModalScreen() se bloquant jusqu'à disparition de l'objet Screen de la pile d'affichage (où pushScreen() répond immédiatement), l'ordre des opérations est crucial lorsque vous utilisez des écrans modaux. N'appelez pas pushModalScreen() avant de démarrer le thread d'envoi d'événement pour ne pas lancer d'exception RuntimeException. D'autres méthodes, telles que Dialog.inform() et Dialog.alert(), utilisent également pushModalScreen().

Graphismes

Plusieurs options vous permettent de créer des graphiques sur un smartphone BlackBerry.

  • Vous pouvez ajouter des composants d'interface utilisateur prédéfinis, tels que du texte, des contrôles de données et des images aux objets Screen.
  • Vous pouvez faire des tracés personnalisés simples sur un écran en ignorant la méthode paint() de la classe qui représente l'écran et à l'aide des méthodes fournies par l'objet Graphics pour tracer sur l'écran.
  • Vous pouvez dessiner des graphiques 2D avec les API SVG : org.w3c.dom, org.w3c.dom.events et org.w3c.dom.svg.
  • Vous pouvez dessiner des images 2D plus sophistiquées avec les API d'utilitaires graphiques OpenGL ES et OpenVG.
  • Vous pouvez créer des images 3D avec l'API OpenGL ES.

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.