TÉLÉCHARGER CHRONOMETRE POUR BLACKBERRY


Comme son nom l'indique, Timer for BlackBerry est un petit programme pour mobiles qui ajoute une fonctionnalité très utile à votre cellulaire: un chronomètre. BlackBerry Timer Stopwatch est un minuteur/chronomètre pour votre mobile BlackBerry qui peut afficher le temps analogique ou numérique. Doté de quatre. 19 nov. ProTimer Multi Stopwatch - Lap Timer Multi-compétiteur pour BlackBerry ® ProTimer multi chronomètre est une application évoluée du circuit.

Nom: chronometre pour blackberry
Format:Fichier D’archive
Version:Dernière
Licence:Libre (*Pour usage personnel)
Système d’exploitation: Android. Windows XP/7/10. iOS. MacOS.
Taille:27.18 Megabytes


Cette méthode fonctionne identiquement à drawArc , cependant celle-ci remplit l'intérieur de l'arc de la couleur actuelle de dessin. Étant donné que nous avons ajouté un attribut UiApplication à chacune de nos classes, et que leurs constructeurs prennent un nouveau paramètre, nous allons donc devoir modifier légèrement la classe principale. Vos applications et informations personnelles sont tenues séparées des données et des applications professionnelles et restent ainsi dans le domaine du privé. Cette classe nommée Vignette rassemble toutes les informations liées à chaque case du jeu. Ensuite si le mouvement est possible, nous mettons à jour la position de la vignette. Notre sélection des meilleurs Bons Plans du moment. Ces mouvements ne modifient pas directement l'état du jeu, cependant l'affichage à l'écran doit tout de même être mis à jour. Vous ne devez pas passer par une application Facebook ou Twitter pour envoyer un message direct. Voici donc les deux dossiers principaux que nous trouvons dans le projet :. Cliquez alors sur le bouton Download du JDK pour passer à l'étape suivante.

A noter qu'un chronomètre de dix secondes se lance automatiquement à chaque Snapchat pour Blackberry est aussi disponible sous Windows Phone. Export: le rapport sur le chronomètre peut être exporté sous Microsoft Excel au format XLS ou XLSX. D'autre part, Multi-Timer Ultimate permet également. 14 janv. This LCD style chronometer allow you to save laps time. Télécharger ait pas plus de choix pour un chronomètre sur le BlackBerry World.

Grâce à lui vous pouvez afficher date et heure selon le format désiré. Voici comment créer un composant de type DateField :.

La méthode currentTimeMillis permet de récupérer la date et l'heure exacte actuelle. Celle-ci renvoie le nombre de millisecondes écoulées depuis un point de départ : le 1er Janvier à GMT. Ainsi cette valeur en millisecondes nous donne en même temps l'heure exacte ainsi que la date.

Pour en revenir à notre champ de texte, voici ce que donne un DateField à l'écran :. Ces champs sont également éditables, ainsi si vous cliquez sur une partie de la date vous verrez apparaître un nouveau contrôle que voici :. Bien évidemment l'heure est éditable au même titre que la date.

Si vous cliquez sur l'heure, vous verrez également apparaître ceci :. Pour finir avec les champs de texte, nous allons maintenant voir la classe PasswordEditField. Comme son nom l'indique, ce type de champs de texte est réservé aux mots de passe ou aux saisies cachées. Mise à part l'affichage qui est différent, ces champs de texte sont identiques aux EditField vus précédemment.

Je vous montre tout de même le constructeur pour éviter d'en perdre quelques-uns :. Ainsi nous retrouverons donc les méthodes setLabel , setText et getText pour gérer notre étiquette et notre texte éditable. Nous allons à présent examiner les différents types de boutons proposés pour les interfaces. Nous y retrouvons tous les grands classiques, à savoir boutons simples, cases à cocher, boutons radios et d'autres.

Dans ce chapitre nous ne présenterons que la mise en page de ces éléments. C'est-à-dire que nous ne verrons pas comment gérer une action sur un bouton ; ceci sera traité dans le chapitre sur les évènements. Sans plus attendre, découvrons ces composants graphiques. Pour démarrer, voyons les boutons simples de type ButtonField. Ce sont les boutons les plus utilisés, ils permettent de réaliser une action lorsqu'on clique dessus. Voilà leur apparence dans les interfaces graphiques BlackBerry :.

Pour créer des boutons, la démarche est la même que pour les champs de texte. Nous allons donc instancier un élément de type ButtonField en appelant son constructeur. Le plus simple est de renseigner le texte qui s'affichera sur le bouton. Voici donc la manière de faire :. Il est possible de modifier le texte ou étiquette ou encore label du bouton en utilisant la méthode setLabel.

Pour ceux qui auraient déjà pensé mettre une icône à la place du texte ou encore combiner icône et texte, nous verrons comment faire à la fin du chapitre.

Pour réaliser cela nous devrons utiliser la méthode setImage qui prend en paramètre un objet de type Image que nous introduirons un peu plus loin. Les composants de type CheckboxField sont des cases à cocher. Ces composants sont très utilisés, notamment pour activer ou non certains paramètres dans des menus d'options quelconques ou bien pour des acceptations de licences et de conditions.

Ces composants possèdent deux états : actif par la valeur true , ou inactif par un false. Voici comment utiliser un composant de la classe CheckboxField :. Les méthodes setLabel et getLabel nous permettent de saisir ou de récupérer l'étiquette de la case à cocher, de la même manière que pour un ButtonField.

Enfin vous pouvez gérer l'état de la case à cocher soit en récupérant sa valeur par la méthode getChecked , soit imposer un état par setChecked.

Les boutons RadioButtonField sont des boutons radios. Ils sont proches des cases à cocher sauf qu'un seul bouton ne peut être actif à la fois dans un même groupe.

Je m'explique : pour créer ce genre de boutons, nous devons au préalable définir un groupe RadioButtonGroup , puis nous ajouterons alors des boutons à ce groupe. Pour mieux comprendre nous allons prendre un exemple dont voici le code :.

Nous avons ici déclaré trois boutons de type RadioButtonField que nous avons ajouté au même groupe. Je vous propose alors de tester ce code, vous devriez alors voir apparaître ceci sur votre écran :. Bien évidemment en temps normal vous aurez besoin de récupérer l'état d'un bouton avec la méthode isSelected , c'est pourquoi vous devrez déclarer une variable pour chacun de vos boutons :. Nous avons déjà vu les cases à cocher et les boutons radios qui servent à faire des choix parmi plusieurs options.

Ces boutons sont très utiles mais possèdent l'inconvénient de prendre de la place surtout lorsqu'il y a beaucoup de choix. Ceci est d'autant plus vrai que les écrans des terminaux mobiles sont petits.

BLACKBERRY POUR TÉLÉCHARGER CHRONOMETRE

C'est pourquoi il existe une alternative : les listes déroulantes. La première liste déroulante est de type ObjectChoiceField qui est propice à l'affichage de texte. Pour faire cela nous devons au préalable définir l'ensemble de nos différents choix à l'intérieur d'un tableau.

La liste sera alors créée à partir des différents éléments de votre tableau, c'est aussi simple que cela. Voici comment procéder :. Vous remarquerez que les listes déroulantes possèdent également une étiquette à renseigner dans le constructeur. Enfin le dernier paramètre correspond tout simplement à l'élément sélectionné initialement à l'apparition de l'écran. Voici à quoi ressemble le composant à l'écran :. Si vous faites dérouler la liste vous verrez alors apparaitre l'ensemble des choix disponibles :.

Les méthodes à retenir pour cette classe sont setChoices , getSelectedIndex et getChoice. La première sert à définir ou redéfinir la liste de choix, la deuxième à récupérer l'indice de l'élément sélectionné et la dernière à récupérer la valeur de l'élément dont l'indice est renseigné en paramètre. Nous avons ici utilisé des éléments de type String comme vous le ferez souvent, mais sachez qu'il est possible d'y insérer toutes sortes d'objets.

Il existe une classe spécifique pour des listes déroulantes à valeurs numériques qui est NumericChoiceField. Pour définir la liste voici les paramètres à renseigner dans l'ordre :. Vous obtiendrez alors une liste très similaire à la précédente :. Vous pourrez également récupérer l'élément sélectionné à l'aide de la méthode getSelectedValue. Nous allons maintenant nous attaquer aux images que vous attendiez certainement avec impatience. Nous verrons comment charger une image à partir de son nom, puis nous apprendrons à les afficher.

Avant de continuer, nous avons besoin d'une image. Pour pouvoir charger une image, celle-ci doit se trouver dans le dossier du projet. Pour afficher des images, celles-ci doivent être stockées à l'intérieur de variables. Nous en avons trois types qui sont : Bitmap , EncodedImage , Image. Le chargement d'une image se fait ici à l'aide de la méthode getBitmapResource de cette classe, en renseignant le nom de l'image à charger. Voici comment charger une image dans une variable de type Bitmap :.

La classe EncodedImage permet également de charger une image, et c'est la classe que je vous recommande d'utiliser. Le chargement d'une image se fait de manière similaire que précédemment :. Les images de type EncodedImage ont l'avantage d'être facilement manipulables, notamment si vous souhaitez redimensionner votre image. Pour cela utilisez la méthode scaleImage32 :. Enfin pour finir, la classe Image ne permet pas de charger directement une image.

Cependant le format Image est parfois utilisé à la place du format EncodedImage pour afficher l'image. Cependant il est très facile de passer de l'un à l'autre grâce à la méthode createImage de la classe ImageFactory. Cette méthode nous renvoie alors une image de type Image , utilisez donc l'expression :. Maintenant que les images sont chargées, nous allons pouvoir les afficher à l'écran. Nous verrons donc comment afficher directement l'image, puis nous verrons comment l'insérer en tant qu'icône dans un bouton de type ButtonField.

Le composant graphique BitmapField permet d'afficher une image à l'écran à partir d'une variable Bitmap ou EncodedImage.

Téléchargement logiciel Sport

Pour un Bitmap, la manipulation est simple puisqu'il suffit de mettre l'image en question en paramètre du constructeur comme ceci :. En revanche aucun constructeur ne prend en paramètre des images de type EncodedImage , c'est pourquoi nous devrons procéder autrement. Nous utiliserons alors la méthode setImage après avoir déclaré notre BitmapField :. Dans les deux cas vous verrez apparaître Zozor dans l'angle supérieur gauche de votre écran, comme ceci :.

Rappelez-vous je vous avais dit qu'il était possible de mettre une icône avec ou à la place d'un texte sur un bouton de type ButtonField. Maintenant que nous savons charger une image, nous allons pouvoir le faire. Pour cela nous nous servirons de la méthode setImage de la classe ButtonField , qui prend en paramètre une image de type Image. Pour faire cela, il suffit simplement de réaliser les différentes opérations dans l'ordre :.

Vous verrez alors l'image de Zozor insérée dans le bouton à côté du texte :. Il est possible de choisir de placer le texte à gauche ou à droite de l'image grâce aux méthodes setLabelLeft et setLabelRight. Enfin si vous ne désirez pas de texte mais uniquement l'icône, il suffit de n'en renseigner aucun dans le constructeur de la classe ButtonField. Tout composant graphique est représenté par une classe qui hérite de Field.

Les boutons de base sont de type ButtonField. Les images sont chargées à travers les classes Bitmap , EncodedImage et Image. Pour afficher une image à l'écran, il faut utiliser le composant BitmapField. Maintenant que nous avons appris à créer différents composants, nous allons maintenant apprendre à les disposer suivant nos envies grâce aux conteneurs!

Nous introduirons les différents types de conteneurs disponibles et nous verrons donc comment les organiser avec d'autres conteneurs et composants. Ainsi vous commencer à réaliser de vrais interfaces graphiques, correspondant à vos souhaits. Enfin, nous réaliserons un album photo dans deux versions, que nous finaliserons dans le prochain chapitre! Nous avions vu que la classe Mainscreen était un conteneur, qui est de type vertical. C'est pourquoi il existe différents types de conteneurs qui permettent d'aligner les éléments autrement.

Ainsi en combinant divers conteneurs, nous pourrons positionner les composants suivant nos envies. Voici par exemple une mise en page de conteneurs de types vertical et horizontal :. Chaque conteneur peut accueillir à la fois d'autres conteneurs ou bien des composants tels que ceux vus dans le chapitre précédent. Pour insérer un nouvel objet à un conteneur, nous devons utiliser une méthode déjà bien connue : add.

Bien entendu il existe d'autres manières d'aligner les composants que verticalement et horizontalement. Nous détaillerons tous les types de conteneurs qui vous permettront de réaliser les mises en pages que vous souhaitez. Pour bien comprendre la philosophie des conteneurs, il est nécessaire de bien saisir la manière dont ceux-ci sont hiérarchisés.

Pour cela, reprenons la mise en page précédente sous la forme d'un arbre, pour bien comprendre comment les différents conteneurs sont liés entre eux :.

Les deux conteneurs horizontaux sont placés dans le MainScreen de type vertical. Ainsi ces deux conteneurs seront donc l'un en dessous de l'autre. Les deux conteneurs verticaux en bas de la hiérarchie sont à l'intérieur d'un conteneur horizontal. Ceux-ci seront donc côte à côte dans le sens horizontal.

Enfin, il faut noter que les conteneurs se remplissent suivant l'ordre dans lequel sont ajoutés les objets. C'est un point important lors de l'organisation de votre mise à page à l'aide de la méthode add.

Voyons maintenant les différents types de conteneurs proposés! Dans cette sous-partie, nous allons travailler sur les différents conteneurs proposés. Pour comprendre leur fonctionnement nous devrons utiliser plusieurs éléments à afficher.

C'est pourquoi je vous propose de nous servir de ces images de Zozor :. Nous utiliserons donc ici trois composants de type BitmapField contenant chacun une des trois images. Maintenant que vous savez utiliser cet élément, nous ne réécrirons pas à chaque fois le code servant à charger les images. Toutefois, je le vous donne quand même une fois pour que nous partions sur de bonnes bases :. Les conteneurs de type VerticalFieldManager servent à ajouter les éléments verticalement.

Pour l'utiliser nous devrons donc l'ajouter au MainScreen , lui-même de type vertical. Puis nous lui insèrerons alors les éléments les uns après les autres dans l'ordre d'affichage. Sans plus attendre, voici comment l'utiliser :. Sans grande surprise, vous verrez les trois images tracées les unes en dessous des autres :. Comme son nom l'indique, ce conteneur permet d'aligner les éléments horizontalement. L'utilisation de ce type de conteneur est identique que précédemment.

Là encore pas de surprise, les composants sont affichés horizontalement :. Les conteneurs de type FlowFieldManager sont un mixe des deux précédents : les éléments sont rangés horizontalement puis verticalement. C'est-à-dire que les composants vont s'ajouter horizontalement jusqu'au bord de l'écran, puis sur une nouvelle ligne, etc. Encore une fois, seul le nom du conteneur change à l'intérieur du code :. Les GridFieldManager sont des conteneurs sous forme de grilles, organisées en lignes et colonnes.

Vous définissez le nombre de lignes et colonnes dans le constructeur, puis vous remplissez la grille par lignes. Voici par exemple, une grille de dimension 2 imes 2 contenant nos trois images :.

Pour l'instant ne vous souciez pas du GridFieldManager. Étant donné que la grille possède uniquement deux colonnes, la troisième image sera placée dans la première colonne de la deuxième ligne :.

Pour finir nous allons voir les conteneurs de type AbsoluteFieldManager. Ceux-ci permettent de placer les éléments suivant leur position absolue par rapport à l'origine qui est l' angle supérieur gauche. Cette distance est exprimée en pixels suivant les axes X horizontal et Y vertical. Voici nos trois images placées en différents points de l'écran :. Il est probable que la couleur blanche en arrière-plan ne vous convienne pas.

C'est pourquoi nous allons voir comment changer la couleur de fond d'un conteneur. Pour cela nous devrons charger une couleur à l'aide de la classe BackgroundFactory puis la stocker dans une variable de type Background.

Voici comment procéder pour le MainScreen :. Vous remarquerez qu'il est nécessaire de récupérer le conteneur MainScreen avant de lui affecter sa couleur de fond. Voici le résultat :. Les conteneurs et les composants possèdent des propriétés qui servent à les aligner. En voici une liste non exhaustive de ces propriétés :. Ces propriétés sont renseignées dans le constructeur de l'élément lui-même. Voici un exemple reprenant nos trois images de Zozor :. À l'intérieur d'un conteneur vertical tel que le MainScreen , les alignements précédents nous donnent alors un écran dans ce style :.

Après ces deux longs chapitres, nous allons pouvoir renter dans le concret. Pour cela, je vous propose de réaliser un petit album photo simplifié! Dès à présent nous allons réaliser la mise en page de celui-ci, puis nous finirons l'application dans le chapitre suivant qui porte sur la gestion des évènements.

Pour vous mettre l'eau à la bouche, voici un aperçu des deux versions de l'album photo :. Pour réaliser cet album photo, j'ai utilisé des photos gratuites et libres disponibles sur le site stock stockvault. Vous pouvez bien entendu utiliser vos propres photos, cependant pour simplifier le code il est préférable que celles-ci aient toutes les mêmes dimensions.

Autrement voici les photos que j'ai sélectionné :. Sans plus attendre, lançons-nous dans la conception de cet album photo! En premier nous devons créer un nouveau projet que j'ai nommé AlbumPhoto , qui est donc identique au HelloWorld de départ :. Tout d'abord nous allons créer un composant personnalisé à partir d'un ButtonField.

Ce que nous voulons ici c'est redéfinir la largeur des boutons pour que ceux-ci prennent la totalité de la largeur de l'écran. Pour faire cela nous devrons réécrire la méthode getPreferredWidth , qui permet également de récupérer la largeur d'un composant. Je vous propose donc de créer une nouvelle classe héritant de ButtonField comme ceci :. Nous allons maintenant nous intéresser à la classe MyScreen qui hérite de MainScreen.

Tout d'abord, insérez ces attributs qui nous servirons pour le chapitre suivant :. Nous avons donc un tableau d' EncodedImage nommé mesImages qui regroupe l'ensemble de nos photos. Ensuite nous avons un entier photoActuelle qui contiendra l'indice dans le tableau de la photo affichée en grand ainsi que le BitmapField maPhoto qui la contiendra. Enfin l'entier echelle retiendra l'échelle de l'image que nous pourrons réutiliser pour la mise à jour de l'affichage.

Maintenant concentrons-nous sur ce que nous allons écrire à l'intérieur du constructeur MyScreen. Commençons par définir la couleur d'arrière-plan en noir comme nous avons appris à le faire :. Ensuite nous allons initialiser nos attributs sauf l'entier echelle qui nécessite au préalable d'avoir effectué quelques tracés.

Pour cela nous allons prendre la première image du tableau comme image de départ. Ensuite nous allons charger nos EncodedImage dans le tableau à l'aide d'une boucle, puis nous initialiserons notre BitmapField avec la première photo. Voici l'ensemble de ces opérations :. Occupons-nous à présent de nos boutons personnalisés créés dans la classe Bouton. Ayant déjà redéfini la largeur du composant dans la classe Bouton , nous pouvons maintenant utiliser ce composant de la même façon qu'un ButtonField.

Pour finir nous déplacerons le texte à gauche de l'icône pour le deuxième bouton, voici ce que cela donne :. Comme vous le voyez, les boutons sont alignés horizontalement, nous aurons donc besoin d'un conteneur de type HorizontalFieldManager. Nous pourrons alors ajouter nos différents éléments aux divers conteneurs dans un ordre précis :. Il ne nous reste plus qu'à redimensionner l'image centrale en fonction de la hauteur des boutons.

Pour cela, nous initialiserons notre variable echelle dans un premier temps, puis nous mettrons à jour le BitmapField :. Étant donné que ce code sera indispensable pour la suite, je vous ai réécrit l'ensemble de la classe MyScreen :. Pour concevoir l'album photo avec miniatures, nous allons reprendre le code précédent sur un certain nombre de points.

Pour commencer, ici nous n'aurons pas besoin de la classe Bouton. Dans la classe MyScreen , nous garderons exactement les mêmes attributs. Ensuite nous allons dans un premier temps garder les deux premiers blocs d'instructions du constructeur, à savoir :. N'ayant plus de boutons ici, nous reprendrons directement la mise en page des conteneurs. Mettons en place le conteneur horizontal que j'ai renommé mesMiniatures , ainsi que le BitmapField et le SeparatorField , ce qui nous donne :.

Nous arrivons maintenant à la partie intéressante de cette version : l' affichage des miniatures! Pour réaliser cela nous allons utiliser une boucle. À l'intérieur, nous créerons pour chaque miniature un BitmapField à partir des EncodedImage de notre tableau mesImages.

Puis nous les ajouterons une à une dans notre conteneur horizontal. Voici le code qui résume tout ça :. Enfin, nous n'avons plus qu'à redimensionner l'image centrale en fonction de la hauteur des miniatures de la même manière que précédemment. Pour récapituler tout cela, je vous propose la classe MyScreen dans son intégralité :.

Il existe des conteneurs de différents types, notamment horizontaux et verticaux. Les conteneurs et les composants s'ordonnent suivant une hiérarchie. L'ensemble des conteneurs sont définis dans le package net. Il est probable que vous vous demandiez ce qu'est un évènement , je vais donc essayer de vous expliquer ce concept! Lorsqu'on conçoit une application, il est intéressant d'avoir de l'interaction avec l'utilisateur. Par exemple dans notre album photo, nous voudrions que l'image centrale soit mise à jour si on clique sur un des boutons ou encore si on touche une miniature sur l'écran.

Hé bien les évènements servent justement à déclencher une fonction lorsqu'une action s'est produite. Au cours de ce chapitre, nous allons donc découvrir comment gérer différents types d'évènements et mettre cela en pratique dans notre album photo!

Pour exécuter une fonction à l'appui d'un bouton, nous utilisons ce que l'on appelle un écouteur. Pour cela nous allons utiliser la classe FieldChangeListener , et plus particulièrement nous allons redéfinir la méthode fieldChanged.

Ensuite il ne restera plus qu'à associer l'écouteur au composant grâce à la méthode setChangeListener disponible pour tout type de bouton :.

Téléchargez aussi: TÉLÉCHARGER MEDISTORY GRATUIT

Pour changer l'image affichée en fonction des boutons, il suffit de mettre à jour la variable photoActuelle , puis le BitmapField correspondant. Voici ce que donne la gestion des évènements des deux boutons de l'album photo :. Également je vous redonne l'intégralité de la classe MyScreen pour que tout le monde puisse tester cet album photo :. Les écrans tactiles sont maintenant omniprésents sur les terminaux mobiles. Nous allons maintenant découvrir comment gérer les évènements générés par l'utilisateur sur l'écran.

Pour gérer ces évènements nous allons devoir redéfinir la méthode touchEvent de notre MainScreen. Pour cela je vous propose de découvrir directement la méthode en question que nous analyserons juste après :. Dans un premier temps nous devons récupérer les informations liées à l'évènement. Pour cela nous utilisons la méthode getEvent de la classe TouchEvent pour obtenir le type de l'évènement. Également nous allons récupérer la position de l'évènement par les méthodes getX et getY comme présenté ci-dessus.

Une fois ces informations connues, il est alors possible d'exécuter des instructions suivant l'évènement apparu ou la position de celui-ci à l'écran. Revenons-en à notre album photo! Dans le cas des miniatures, la gestion des évènements est également assez simple. Ici, nous nous occuperons uniquement du cas où l'utilisateur pose son doigt sur l'écran soit l'évènement TouchEvent.

L'opération consiste alors dans un premier temps à vérifier si la zone de l'écran touchée correspond à celle des miniatures. Pour cela il nous suffit de tester si la variable touchY est supérieure à la hauteur de l'image maPhoto. Ensuite nous devons récupérer le numéro de l'image sélectionné en faisant un petit calcul. Enfin nous n'aurons plus qu'à mettre à jour le BitmapField comme nous l'avons toujours fait jusqu'à présent :.

Pour ceux qui seraient intéressés, voici l'intégralité de la classe MyScreen :. Je vous invite maintenant à tester cet album photo. Pour ceux qui voudraient aller plus loin, n'hésitez pas à ajouter de nouvelles fonctionnalités ou de retravailler l'interface à votre guise. Voici le visuel final de cette application :.

Pour terminer ce chapitre sur les évènements, nous allons introduire un dernier point qui peut vous être utile dans vos futures applications. Pour cela, revenons sur les instructions de récupération de position de l'évènement. Rappelez-vous :. Je vous avais introduit ces méthodes getX et getY sans vous expliquer pourquoi nous passions en paramètre le nombre 1. En réalité ce chiffre correspond au numéro de l'évènement, je m'explique. Sur les écrans tactiles il est possible d'utiliser deux doigts en mode multipoints, et donc de gérer deux évènements simultanés à l'écran.

Ainsi, un deuxième évènement peut être traité en utilisant le code suivant :. Comme vous avez dû le remarquer, un évènement est actif lorsque chacune de ses coordonnées est non nulle. Vous pouvez alors gérer chacun des évènements séparément pour ajouter toujours plus de fonctionnalités à votre application.

Nous utilisons des écouteurs pour exécuter des fonctions à l'appui d'un bouton. Un écouteur se conçoit en utilisant la classe FieldChangeListener et en redéfinissant sa méthode fieldChanged. Pour associer un écouteur à un composant, il faut utiliser la méthode setChangeListener. Nous avons vu jusqu'à maintenant comment réaliser des interfaces graphiques à l'aide de composants prédéfinis.

À présent nous allons découvrir comment créer une vue à partir de zéro, pour créer une vue personnalisée. Ce type de vue est plus complexe à mettre en place, notamment en ce qui concerne la gestion de différentes tailles d'écrans. Néanmoins cela permet d'avoir beaucoup plus de contrôle sur l'affichage, et sert également à personnaliser plus efficacement vos différentes vues. Nous allons ici voir le code minimal nécessaire pour créer des interfaces graphiques personnalisées.

Pour cela nous allons créer une nouvelle classe nommée MaClasseDessin qui héritera de la classe MainScreen. Sans plus attendre, je vous laisse découvrir la structure de base que nous utiliserons pour notre nouvelle classe :.

Pour ceux qui l'auraient déjà utilisée, vous constaterez que cette structure est très proche de celle utilisée en Java :.

Pour étudier la structure de cette classe, je vous propose d'y aller étape par étape. Pour commencer, voyons les attributs. Les attributs correspondent aux variables que nous manipulerons à l'intérieur de nos méthodes. Nous pourrons y trouver des variables de tous types, cependant nous y trouverons en particulier tous les éléments ou paramètres permettant de tracer l'interface. Par exemple nous pourrions stocker une image à tracer ainsi que ses coordonnées à l'écran :.

N'oubliez pas d'importer les classes que vous utilisez :. Qui dit attributs dit initialisations , et pour cela nous avons le constructeur. Lorsque vous créez une classe qui hérite d'une autre, n'oubliez pas d'appeler le constructeur de la classe parente : ici la classe MainScreen.

Voici donc notre constructeur :. La méthode suivante est la plus importante : il s'agit de la méthode paint. C'est à l'intérieur de celle-ci que nous définirons comment tracer les différents éléments à l'écran. Lorsque nous voudrons rafraîchir l'écran, c'est cette méthode qui sera appelée. C'est à nous de faire en sorte que l'élément soit affiché selon nos désirs.

Les meilleures applis gratuites pour BlackBerry

Dans notre exemple nous allons tracer l'image à la position souhaitée, c'est-à-dire aux coordonnées définies dans le tableau position. Pour tracer nos éléments nous utiliserons des méthodes de la classe Graphics :. Enfin pour que notre application est de l'utilité, il va falloir gérer les évènements. Pour cela, je vous propose de tracer l'image monImage à la position où l'utilisateur pose le doigt.

Voici donc la méthode touchEvent proposée :. Dans cette méthode, on reçoit le paramètre de type TouchEvent grâce auquel nous allons pouvoir récupérer toutes les informations liées à l'évènement.

Ainsi si l'utilisateur pose un doigt sur l'écran, alors nous mettons à jour la position de l'image. La méthode invalidate est très importante. C'est elle qui va appeler la méthode paint et permettre de retracer les éléments à l'écran. Voilà, nous avons fait le tour de cette classe. Pour finir, je vous ai donné la classe entière :. Nous allons à présent découvrir les différentes méthodes qui permettent de tracer différentes formes et contours.

Toutes les dimensions sont ici exprimées en pixels. Rien de plus classique qu'un point! Pour tracer un point utilisez la méthode drawPoint en spécifiant les coordonnées du point, comme ceci :. Comme son nom l'indique, cette méthode sert à tracer des lignes. Pour l'utiliser, renseignez les coordonnées du point de départ puis celles du point d'arrivée. Voici un exemple :. La méthode drawArc permet de tracer des arcs de cercle ou des cercles complets.

Les différents paramètres dans l'ordre sont : les coordonnées x et y du centre du cercle, la largeur et la hauteur du cercle, et enfin l'angle de départ et celui de fin du tracé. Cette méthode trace également un arc mais de forme elliptique. Pour l'utiliser, spécifiez dans l'ordre : les coordonnées du centre, les coordonnées d'un point appartenant à l'arc, les coordonnées d'un second point appartenant à l'arc, puis les angles de départ et d'arrivée.

Pour la méthode drawRect , il n'y a rien de compliqué. Placez en paramètres les coordonnées de l'angle supérieur gauche ainsi que la largeur et la hauteur du rectangle, comme ceci :.

CHRONOMETRE BLACKBERRY TÉLÉCHARGER POUR

Cette méthode est identique à la précédente, simplement rajoutez la largeur et la hauteur de l'arrondi. Il est également possible d'écrire du texte grâce à la méthode drawText. Renseignez votre texte à afficher ainsi que sa position.

La méthode setColor permet de choisir la couleur des contours mais également celle des remplissages. Voici un exemple qui modifie la couleur des tracés en bleu :.

Enfin, notez l'existence de la méthode clear qui sert à effacer l'écran, c'est-à-dire le rafraîchir entièrement de la couleur d'arrière-plan. Cette méthode fonctionne identiquement à drawArc , cependant celle-ci remplit l'intérieur de l'arc de la couleur actuelle de dessin. La méthode fillEllipse fonctionne également comme drawEllipse. Pour créer des remplissages de rectangles, utilisez la méthode fillRect. Enfin pour finir, voici la méthode fillRoundRect :. La méthode drawGradientFilledRect permet de créer un remplissage de couleur dégradée à l'intérieur d'un rectangle.

Celle-ci s'utilise de la même manière que fillRect , en précisant en plus les couleurs de départ et d'arrivée du dégradé. Voici un exemple de dégradé du bleu au rouge :. Cette méthode est similaire à la précédente, en y ajoutant les arrondis :. Pendant que nous sommes dans les couleurs, nous allons présenter la méthode setBackbroungColor qui sert à choisir la couleur d'arrière-plan. Celle-ci s'utilise simplement en renseignant la couleur désirée.

Voici par exemple comment créer un fond noir :. Pour terminer ce chapitre, nous allons voir comment vous pouvez tracer des images grâce à la classe Graphics. Pour cela, vous disposez de deux méthodes qui dépendent du type d'image que vous avez chargé.

Si vous avez chargé votre image avec la classe Bitmap , vous devrez alors utiliser la méthode drawBitmap , comme ceci :. Les deux premiers paramètres correspondent à la position de l'image. Nous reviendrons sur les autres paramètres dans très peu de temps. Vous devriez donc voir apparaître Zozor à la position spécifiée :. Si vous utilisez des images de type EncodedImage , vous devrez alors utiliser la méthode drawImage pour afficher cette image à l'écran.

Celle-ci est quasiment identique à la méthode précédente :. Dans les deux méthodes, différents paramètres permettent de rogner l'image selon vos désirs. Ainsi dans la méthode drawImage , les troisième et quatrième paramètres permettent de définir les dimensions de l'image. Si celles-ci sont inférieures à la taille de l'image, alors l'image est rognée. Il est également possible de décaler ce rognage grâce aux deux derniers paramètres.

Pour mieux comprendre comment cela fonctionne, n'hésitez pas à tester différentes valeurs. Voici un exemple que je vous propose :. Cet exemple va donc rogner l'image à gauche, à droite ainsi qu'en bas comme montré ci-dessous :.

Les vues personnalisées permettent d'avoir un meilleur contrôle et plus de possibilités sur l'affichage. Pour dessiner à l'écran, il est nécessaire de redéfinir la méthode paint de votre MainScreen.

Les différents tracés sont réalisés à l'aide des nombreuses méthodes de la classe Graphics. Pour ce type de vue, les évènements peuvent être gérés à l'aide de touchEvent. Pour mettre à jour l'affichage, il faut faire appel à la méthode invalidate qui appellera notamment la méthode paint que vous avez redéfinie. Il est temps pour vous de pratiquer un peu! Nous allons donc dans ce TP réaliser un jeu de taquin depuis zéro.

Pour la correction, nous procèderons étape par étape pour vous permettre de comprendre au mieux. L'objectif de ce chapitre n'est donc pas de vous faire voir de nouvelles notions, mais uniquement de vous faire pratiquer avec les connaissances que vous avez déjà.

Ce sera donc l'occasion de faire un point sur ce que vous avez retenu jusqu'à présent. Le taquin est un jeu solitaire créé il y a environ ans. À l'origine, ce jeu était composé de 15 carreaux numérotés de 1 à 15 glissant dans un cadre prévu pour Dans un taquin, le but du jeu consiste alors à remettre les carreaux dans l'ordre d'après une configuration initiale quelconque.

De nos jours, le taquin est souvent représenté sous la forme d'une image à reconstituer. On en retrouve de partout, notamment sur internet. Au cours de ce TP, nous allons réaliser un taquin aux couleurs du site. Vous pourrez utiliser vos propres images ou bien récupérer les miennes plus bas. Nous devrons donc créer une application qui sera soumise à certaines contraintes. Je vous propose de faire un rapide tour de ce que nous devrons prendre en compte lors de sa conception :.

Il ne faudra pas mélanger les vignettes n'importe comment. Enfin, voici un aperçu de ce que nous pourrions avoir à l'écran lors du déroulement du jeu :. Pour commencer le taquin est un jeu assez populaire, vous y avez probablement tous joué! Ce jeu est intéressant, je vous assure que vous y jouerez un sacré moment une fois le TP terminé.

Les règles sont simples, ce qui facilite la mise en place du cahier des charges. De plus, la logique simple du jeu facilitera la conception de l'application, bien qu'il nous faudra plusieurs classes pour parvenir au bout du TP.

En effet, comme sur un vrai jeu nous déplacerons les cases à l'aide des doigts. Bien gérer ces déplacements rendra le jeu plus interactif et plus fluide, c'est ce qui fait la popularité de ce genre d'applications.

Ce jeu peut être codé de plusieurs manières différentes, c'est pourquoi je vous invite fortement à essayer de le réaliser par vous-même. Ma méthode n'est pas meilleure qu'une autre, il est possible que vous trouviez une méthode plus simple et demandant moins de lignes de code.

Quoi qu'il en soit, pour réaliser ce TP il se peut que vous soyez obligé d'y passer plusieurs jours. N'hésitez pas à prendre votre temps!

POUR BLACKBERRY CHRONOMETRE TÉLÉCHARGER

Voici les vignettes que j'ai utilisé pour réaliser mon taquin :. Avant de passer à de plus amples explications, je vous ai ici mis l'ensemble du code source. Cela me permettra dans un premier temps, de vous présenter les différentes classes que j'ai utilisé. Pour réaliser cette application, je me suis servi de cinq classes dont la fonction vous est présentée juste après.

N'hésitez pas à tester cette application en copiant-collant le code source des différentes classes ci-dessous! La classe MonApp est comme depuis le début, la classe de départ de notre programme.

Elle n'est pas différente des précédentes, c'est pourquoi nous n'y reviendrons pas dans les explications. Celle-ci se contente simplement de faire appel à la classe MonDessin décrite plus bas.

Vous trouverez néanmoins le code source de cette classe ci-dessous :. La classe MonDessin reprend la syntaxe de la classe MaClasseDessin décrite dans le chapitre sur les vues personnalisées. Nous utilisons dans cette classe tout ce qui avait été vu dans ce précédent chapitre. Nous la détaillerons plus bas, mais en attendant voici le code correspondant :. Cette classe nommée Vignette rassemble toutes les informations liées à chaque case du jeu. On y retrouve notamment le numéro de la case, l'image à tracer ainsi que sa position à l'écran.

Cette classe regroupe également l'ensemble des méthodes permettant de gérer et modifier ces attributs. Voici le code de cette classe :. La classe Partie sert à la gestion du jeu en cours. Elle possède en unique attribut un tableau décrivant l'état du jeu ainsi que toutes les méthodes nécessaires au bon déroulement du jeu. Le code source de cette classe est écrit ci-dessous :. La classe Mouvement permet de gérer les mouvements d'une vignette, en particulier lors d'un mouvement transitoire de vignette d'une position à une autre.

Ces mouvements ne modifient pas directement l'état du jeu, cependant l'affichage à l'écran doit tout de même être mis à jour. À présent, nous allons étudier le contenu de ce code source plus en détails. Encore une fois, la méthode utilisée pour réaliser ce jeu est propre à chacun. Vous vous en doutez certainement, nous allons parler ici de la classe Vignette.

Tutoriel : Créez des applications pour BlackBerry

Comme dit plus haut, cette classe rassemble toutes les informations liées à chaque case du jeu et nous y trouvons le numéro de la case, l'image à tracer ainsi que sa position à l'écran. Voici donc ces différents attributs :. Jusque-là, rien de bien impressionnant.

En revanche, le constructeur de la classe est légèrement plus pointu : il va nous falloir initialiser ces attributs. Pour cela nous aurons besoin d'un certain nombre de paramètres :. Le numéro de la vignette doit être stocké, nous pouvons directement initialiser notre attribut numero. De plus en sachant que nos vignettes font à l'origine 80 imes 80 pixels, nous pouvons également initialiser la position de la vignette :.

Enfin pour finir, il nous faut charger l'image correspondant à la vignette. Nous allons alors simplement utiliser la méthode présentée au chapitre précédent, à savoir :. L'utilité de cette classe réside uniquement dans ses attributs. C'est pourquoi, les seules méthodes présentes dans cette classe sont exclusivement des accesseurs.

Nous ne les détaillerons pas, je vous laisse le soin de les découvrir. Nous avons donc besoin d'une nouvelle classe nommée Partie. Celle-ci possède un seul attribut : il s'agit d'un tableau 2D comportant le numéro des vignettes à chaque position. Dans un premier temps, nous pouvons placer les vignettes dans l'ordre. Voici donc le code correspondant à la déclaration de l'attribut ainsi que le constructeur provisoire :. Attaquons-nous maintenant aux différentes méthodes dont nous aurons besoin.

Attaquons par un accesseur, voici une méthode permettant de récupérer le numéro d'une vignette suivant sa position dans le tableau :. Ensuite, voici une méthode permettant de savoir si les vignettes sont en place.

Celle-ci nous renvoie un booléen suivant le résultat. La méthode suivante permet de savoir si une vignette peut être déplacée. Dans ce cas la vignette peut être déplacée dans cette direction.

En retour, nous renvoyons un tableau 2D indiquant quels sont les déplacements possibles en pixels. Puis, nous aurons également besoin d'une méthode pour déplacer un élément. Enfin pour finir, nous allons modifier le constructeur pour avoir un jeu mélangé en début de partie. C'est là que nous allons introduire la méthode melanger. Ensuite il nous suffit d'intervertir sa place avec l'un de ses voisins. Après avoir réitéré l'opération plusieurs fois, nous avons un jeu suffisamment mélangé.

Nous voilà enfin au bout de cette classe. N'hésitez pas à relire cette partie plusieurs fois pour bien comprendre le fonctionnement. Nous allons ici introduire la classe Mouvement.

Celle-ci est en charge des mouvements transitoires de vignettes d'une position à une autre. Pour pouvoir gérer ces déplacements, nous aurons besoin de différents attributs. Nous allons définir le numéro de la vignette sélectionnée, les mouvements possibles de cette vignette ainsi que la position de l'évènement précédent pour pouvoir calculer le déplacement du doigt à l'écran.

Un dernier attribut permet de définir si le déplacement est en cours ou non, c'est-à-dire si l'utilisateur a toujours le doigt sur l'écran ou non.

Voici donc la liste des attributs définis pour cette classe :. Le constructeur ne mérite pas de longues explications. Les attributs peuvent être initialisés avec n'importe quelles valeurs, du moment que l'attribut actif est faux. Le constructeur est défini ci-dessous :.

Dans cette classe encore, nous retrouvons principalement des accesseurs. Nous ne les détaillerons pas tous, mais nous étudierons quand même les méthodes nommées setMouvements. La première permet de mettre à jour l'attribut mouvements ainsi que d'autoriser le mouvement si la vignette peut être déplacée :.

Et pour finir, la deuxième méthode permet de désactiver le mouvement :. Nous voilà fin prêt, il ne nous reste plus qu'à tracer les éléments à l'écran.

Maintenant que tout est prêt, il nous faut rassembler l'ensemble et tracer les différents éléments.

BLACKBERRY POUR TÉLÉCHARGER CHRONOMETRE

Tout ceci, nous allons le faire à l'intérieur de la classe MonDessin. Nous utiliserons toutes les notions vues au chapitre précédent sur les vues personnalisées. Faisons à présent un tour des attributs dont nous aurons besoin. Tout d'abord, nous prendrons une variable pour retenir l'échelle de l'écran jeu en imes pixels.

Ensuite nous aurons besoin de charger l'ensemble des vignettes, nous utiliserons un tableau de Vignette. Enfin nous prendrons une occurrence de chacune des deux classes Partie et Mouvement. Voici les attributs :. Aucune surprise dans le constructeur si ce n'est la nécessité de réaliser une boucle pour faire appel aux constructeurs de la classe Vignette.

CHRONOMETRE BLACKBERRY TÉLÉCHARGER POUR

Voici ce constructeur :. Nous voici arrivés à l'endroit qui va donner vie à notre jeu. Vous l'aurez deviné, il s'agit bien évidemment de la gestion des évènements.

Nous utiliserons les évènements suivants: TouchEvent. UP et TouchEvent. Pour commencer, nous allons nous occuper du cas où l'utilisateur pose son doigt sur l'écran. Il faut alors dans un premier temps trouver quelle vignette a été touchée.

Ensuite nous regardons si cette vignette peut être déplacée. Puis, il ne nous reste plus qu'à mettre à jour les attributs de la classe Mouvement. Ensuite nous devons gérer le cas où le doigt bouge à l'écran. Tout d'abord nous devons calculer le déplacement effectué depuis le dernier évènement.

Ensuite si le mouvement est possible, nous mettons à jour la position de la vignette. Pour cela, nous regardons si le déplacement proposé s'insère dans l'intervalle de déplacement autorisé.

Voici comment j'ai réalisé ceci :. Enfin, une fois que l'utilisateur retire son doigt de l'écran, nous devons vérifier si le jeu a été modifié. Donc nous devons déterminer sur quelle position se trouve alors la vignette déplacée par un petit calcul. Ensuite, nous devons réactualiser le jeu, en appelant quelques accesseurs et autres méthodes :. La deuxième partie de ce bloc d'instructions correspond à la fin de la partie.

Une fois que toutes les pièces sont en place, nous affichons une boîte de dialogue puis mettons fin à l'application. Pour démarrer en douceur cette troisième partie, je vous propose que nous revenions un peu sur les vues. Dans la partie précédente, nous avons appris à réaliser divers types de vues. Maintenant nous allons voir comment travailler avec plusieurs vues, et comment passer facilement d'une à autre.

Nous verrons donc très peu de théorie, mais plutôt diverses techniques de gestion des vues. Ce chapitre va donc nous permettre de démarrer cette nouvelle partie en douceur.

Je vous invite donc à vous lancer dans la suite de ce cours! Nous allons ici préparer les différentes vues que nous utiliserons dans la suite. Ce sera pour vous l'occasion de faire quelques révisions sur ce que nous avons déjà vu! Pour notre première vue, nous allons utiliser principalement deux éléments, à savoir une image et un bouton. Ceux-ci seront alors centrés à l'écran avec un dégradé de couleurs en arrière-plan. Voilà donc à quoi cela va ressembler :.

Pour gérer l'ensemble de la vue de la page d'accueil, nous allons déclarer un conteneur nommé accueil. Afin que les éléments soient centrés au final, nous allons créer un conteneur de type HorizontalFieldManager auquel nous imposerons d'utiliser toute la place disponible verticalement. Voilà donc comment nous commençons :.

Nous allons également profiter de cette déclaration pour créer le dégradé souhaité. Pour cela, nous allons redéfinir la méthode paint du conteneur :. À présent nous allons créer un nouveau conteneur vertical. Celui-ci sera centré verticalement et utilisera toute la largeur de l'écran. À l'intérieur, nous pourrons ainsi ajouter nos deux éléments et les centrer.

Maintenant occupons-nous des composants de notre vue, à savoir une image et un bouton! Pour l'image, j'ai utilisé le logo du Site du Zéro que je vous invite à télécharger pour pouvoir travailler en même temps que moi :. Nous allons donc nous servir de la classe BitmapField pour tracer l'image à l'écran. Nous en profiterons également pour centrer celle-ci horizontalement. Voilà comment faire :. Enfin, il ne nous reste plus qu'à ajouter l'ensemble dans les différents conteneurs :.

À ce stade, nous avons donc un conteneur nommé accueil qui contient l'ensemble de notre page d'accueil! Maintenant nous allons créer une page de description du Site du Zéro. Pour cela, nous utiliserons donc deux champs de texte, un pour l'intitulé et le second pour la description du site.

Comme précédemment, nous allons commencer par créer un conteneur nommé page , qui contiendra donc l'ensemble des éléments de la page de description :. Ensuite, nous allons créer un second conteneur de type VerticalFieldManager qui nous servira à appliquer une couleur de fond à notre entête.

Nous lui imposerons donc d'utiliser toute la largeur de l'écran. Voici le code :. En ce qui concerne le titre de la vue, nous allons utiliser un champ de texte de type LabelField. En effet, il s'agit du seul champ de texte qui ne prend pas l'ensemble de la largeur lors de sa création.

Ainsi nous pourrons le centrer, et aussi nous redéfinirons sa couleur d'écriture. Voilà comment faire tout ceci :. Pour la suite, il n'y a rien de compliqué ou de surprenant. Effectivement, nous allons simplement utiliser un RichTextField de la manière suivante :. Nous n'avons alors plus qu'à tout insérer dans les différents conteneurs :. Pour la suite, nous avons donc également un conteneur nommé page qui contient l'ensemble de la page de description.

La première technique consiste à utiliser un seul écran, à savoir notre MyScreen! Dans ce cas, nous pouvons déclarer deux attributs accueil et page qui contiendront donc l'ensemble de nos deux vues. Nous pouvons alors définir ces deux vues à l'intérieur du constructeur de notre classe.

Voilà donc à quoi ressemble la définition de nos deux vues :. À l'ouverture de l'application, nous voulons que l'utilisateur tombe sur la vue accueil. C'est pourquoi pour commencer, nous n'avons qu'à ajouter cette vue au conteneur principal :.

L'objectif est alors de remplacer la vue accueil par page lors du clic du bouton. Pour cela nous allons nous servir de la méthode deleteAll de la classe Manager.

Effectivement, cette méthode permet de supprimer l'ensemble des composants enfants d'un conteneur. Ainsi nous pourrons par la suite ajouter notre nouvelle vue : page. Voilà donc le code qui nous permettra de faire la transition entre les deux vues :. Finalement, nous n'avons plus qu'à ajouter ce code à l'intérieur de la méthode de gestion des évènements du bouton, comme ceci :.

Au final pour utiliser les deux vues définies précédemment, nous avons donc le code suivant :. Conseil: commencez par pousser à une extrémité de la carte SIM puis placez votre pouce sur l'autre extrémité pour tirer et finir de l'extraire. La batterie fournie dans l'emballage d'origine de votre terminal n'est pas entièrement chargée.

Si une carte multimédia est incluse, elle est peut-être déjà insérée. Configurer votre terminal Lors du premier démarrage de votre terminal BlackBerry une fois la batterie insérée, l'application Configuration s'ouvre.

Une connexion réseau est requise pour l'application Configuration, vérifiez donc que votre terminal est connecté à un réseau mobile ou se trouve à portée d'un réseau Wi-Fi.

Après la configuration initiale, vous pouvez ouvrir l'application Configuration sur l'écran d'accueil. Configuration en sélectionnant l'icône L'application Configuration vous demande de saisir un BlackBerry ID ou d'en créer un. Si vous ne savez plus si vous possédez déjà un BlackBerry ID, rendez-vous sur www. Configurer vos options de paiement pour les achats effectués depuis la boutique BlackBerry World. Transférer des données depuis un terminal exécutant BlackBerry 7 ou 7.

Personnaliser les paramètres de votre terminal. L'écran d'accueil : aperçu Icônes d'application Icône Description Contacts Accédez aux contacts de tous vos comptes, ainsi qu'à leurs mises à jour et à vos activités partagées dans une seule application.

Calendrier Affichez tous vos événements, y compris ceux que vous avez ajoutés à partir de vos comptes de messagerie ou de réseau social, au même endroit. Vous pouvez filtrer les événements en fonction de votre compte. BBM Discutez en temps réel en utilisant du texte ou de la vidéo et partagez des fichiers avec jusqu'à 30 contacts BBM. BlackBerry World Téléchargez, achetez, notez et commentez des applications, des jeux, des vidéos et de la musique.

Remember Une application de productivité pour rassembler et catégoriser les informations dont vous souhaitez vous souvenir. Photos Affichez, modifiez et partagez des photos que vous avez prises avec l'application Appareil photo ou qui sont enregistrées sur votre terminal.

Musique Partagez rapidement et facilement votre musique avec vos contacts. Transmettez votre musique via une connexion sans fil pour l'écouter sur un équipement multimédia personnel. Vidéos Affichez, modifiez et partagez des vidéos que vous avez prises avec l'application Appareil photo ou qui sont enregistrées sur votre terminal. Transmettez vos vidéos via une connexion sans fil pour les regarder sur un équipement multimédia personnel.

Facebook Consultez vos notifications Facebook, mettez en ligne des photos et des vidéos et partagez votre emplacement géographique avec vos amis. Twitter Suivez les histoires, les idées et les opinions qui vous intéressent en envoyant et recevant des messages courts, les fameux tweets. LinkedIn Créez-vous un réseau professionnel, restez connecté avec les personnes de ce réseau et accédez à des idées et nouvelles occasions bénéfiques à votre carrière.

Cartes Recherchez des lieux, obtenez un guidage rue par rue et enregistrez vos lieux favoris. Jeux Trouvez des jeux à télécharger et jouez!

Ajoutez vos amis pour voir leurs jeux ou les défier lors d'une partie. YouTube Partagez vos vidéos avec vos amis, votre famille et le monde entier. Contrôle vocal Exprimez vos commandes à voix haute pour passer un appel, envoyer des messages, effectuer des recherches sur Internet et bien plus encore.

Horloge Gérez votre temps avec l'horloge mondiale, le chronomètre, le compteur et le réveil. Calculatrice Effectuez des calculs avec une calculatrice standard ou scientifique, une calculatrice de pourboire et un convertisseur d'unités.

Boussole Orientez-vous grâce à la boussole ou laissez la boussole se connecter aux satellites pour déterminer votre emplacement. Gestionnaire de fichiers Affichez, enregistrez et partagez des fichiers stockés sur votre terminal, une carte multimédia ou sur des terminaux ou réseaux auxquels votre terminal est connecté.

Les meilleures applis gratuites pour BlackBerry

Smart Tags Stockez et créez des cibles contenant des informations telles que du texte, des numéros de téléphone et des liens que vous pouvez partager avec d'autres personnes en les imprimant ou en appuyant dos à dos vos terminaux. Paramètres Modifiez les paramètres des connexions réseau, des comptes, d'affichage, de langue et bien plus encore. Vous pouvez sélectionner un morceau pour la musique de fond, ajouter un titre et un générique de fin et appliquer des thèmes. BlackBerry Remember Grâce à l'association de mémos et de tâches, BlackBerry Remember vous aide à organiser vos centres d'intérêt, idées et projets.

Vous pouvez regrouper des photos, des listes, des messages, des e-mails et des liens apparentés. Vous pouvez créer des tâches à partir d'e-mails et transformer votre contenu en actions n'importe où depuis votre terminal. Contacts L'application Contacts contient des détails sur le contact, les mises à jour et les actualités de la société à partir du réseau social du contact et des événements que vous et ce contact avez en commun.

Vous pouvez filtrer vos contacts rapidement en utilisant le type de compte vous pouvez par exemple choisir de ne voir que les contacts BBM. Vous pouvez également créer des favoris et utiliser des photos des comptes de réseau social pour représenter les contacts.

Calendrier L'application Calendrier est intégrée au BlackBerry Hub, à votre application Contacts ainsi qu'à d'autres applications et comptes. Vous pouvez filtrer les événements de votre calendrier pour chacun de vos comptes de réseau social.