L'aspect des app widgets

 

Quelques principes

Généralement, vous allez définir une marge (une couleur transparente) séparant les bords de(s) cellule(s) de l'écran aux bords de votre appwidget. Ceci afin d'éviter que les appWidgets sur l'écran ne se "touchent".

Puis le décor, soit le fond (background) de votre AppWidget de préférence au format 9-pacth qui permettra:

- de définir la zone qui pourra être agrandie sans abimer l'image,

- et de définir la zone d'affichage pour les objets de types View (Ce qui permettra de définir une seconde marge entre le tour de votre AppWidget et les Views, via la padding box).

 

Pour définir la marge entre le bords des cellules et le bord de votre AppWidget, il y a deux solutions:

  • Première solution

    - Vous posez un premier layout (frame layout) définissant les marges

    - Vous posez un second layout dans le premier définissant un fond au format 9-patch.

    La dimension de cette marge préconisée étant de 8dp, vous coderez donc dans res/values/dimens.xml:

    <dimen name="widget_margin">8dp</dimen>

    Il est à noter que depuis AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) 4.0, les marges sont gérées automatiquement, donc, conditionnez la valeurs suivant l'API utilisée en ajoutant dans res/values-v14/dimens.xml:

    <dimen name="widget_margin">0dp</dimen>

  • Seconde solution

    Créer cette marge directement dans votre image de fond au format 9-patch. Comme il s'agit d'un fichier .png, vous pouvez en effet définir une couleur transparente. Reste à faire la même image sans la marge pour les API à partir de 14. Mais cette solution est plus gourmande en place, puisqu'il faudra multiplier les images de fond.

Ergo. de l'AppWidget

Actuellement, la mode est l'utilisation des images plates (Flat design). Google nous l'a fait pour AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...), Microsoft a continué et Apple a suivi sur iOSSystème d'exploitation mobile développé par Apple. 7...

Chacun ses goûts (les goûts et les couleurs...). Perso, j'ai l'impression d'un retour aux années 80 ! (Nostalgie ?). Ce modèle pouvant avoir tout de même des avantages par exemple sur le web, les images sont alors bien mieux compressées (voire, il n'y en a plus) et donc vous vous retrouvez avec un meilleur débit ! Cette solution est donc d'autant plus adapatée pour les mobiles, où la 3G et même la 4G n'autorisent pas des débits importants. Par contre, pour des applications sur votre ordinateur n'ayant pas besoin de réseau, là, c'est horrible (Microsoft avec son horrible WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). 8) !

Déjà dit, mais un AppWidget ne doit pas occuper trop de place, éviter les majs trop fréquentes et ne pas remplacer une application. Donc il ne doit pas y avoir trop widgets dedans et le plus petits possible, et surtout pas d'animation ! Bref rester sobre.

Annexes

Google donne quelques directions concernant l'ergonomie des app widgets, et explique (en anglais dans le texte) ce que je viens d'énoncé ici:

http://developer.android.com/guide/practices/ui_guidelines/widget_design.html

Il propose aussi dans cette pages quelques templates:

The App Widget Templates Pack for Android 4.0