2012-05-27

Suivre ses comptes bancaires avec linxo

Ce billet n'est pas sponsorisé.

3615 mavie.

Mes différents déménagements et projets m'ont emmené à avoir plusieurs comptes bancaires dans plusieurs banques. Par fidélité et un petit peu par laisser-aller j'ai donc des revenus qui "tombent" sur plusieurs comptes et surtout des prélèvements automatiques sur des comptes que je surveille peu.

En attendant le courage de fermer les comptes et donner les nouveaux RIB, je me sers des sites web des banques ou des applications mobiles. Dans le premier cas il faut systématiquement s'authentifier et c'est pénible (surtout chez Tarneaud) et dans l'autre cas c'est trop souvent un portage bridé de la version iOS (inadaptée à Android).

2012-05-06

Quelques conseils sur SeekBar.setThumb()

Toujours dans mon projet de tracking GPS, j'utilise une SeekBar comme feedback de l'état de progression. Le véhicule se déplace sur toute la longueur de l'écran symbolisant la distance parcourue depuis l'événement n-1 et celle à parcourir avant l'évènement n.

Techniquement, la SeekBar, barre de progression, utilise un curseur (nommé thumb) qui est un Drawable.

Problème 1 : afficher complètement le thumb.

Lorsque la progression de la SeekBar est à 0, le curseur était affiché à moitié. Réciproquement une seule moitié était affichée lorsque le curseur est au maximum.
La solution se trouve dans la documentation de l'API :
sb.setThumbOffset(0);
Explication par le source Android AbsSeekBar.java:
108    // Assuming the thumb drawable is symmetric, set the thumb offset
109    // such that the thumb will hang halfway off either edge of the
110    // progress bar.
111    mThumbOffset = thumb.getIntrinsicWidth() / 2;

Problème 2 : setThumb fait disparaître le curseur.

Quelques secondes après l'affichage du Drawable comme curseur, ce dernier disparaissait.
La solution a été donnée par Romain GUY, il faut refaire une étape de setThumb() (cf paragraphe précédent)
Drawable retourDrawable;
retourDrawable = getResources().getDrawable(
  R.drawable.voituremgps1234);
retourDrawable.setBounds(new Rect(0, 0, 
  retourDrawable.getIntrinsicWidth(),
  retourDrawable.getIntrinsicHeight()));
sb.setThumb(retourDrawable);

Problème 3 : setThumb remet le curseur à 0

Ce problème m'a donné pas mal de fil à retordre. La responsabilité de setThumb dans le repositionnement du curseur n'est pas immédiate. C'est en procédant au pas à pas que le lien m'est apparu. Concrètement, le curseur est positionné à zéro mais ne réponds pas aux ordres de repositionnement.

C'est probablement dans l'API mais je n'ai pas trouvé.

Mon conseil est de mettre le curseur à une valeur nulle ou négative avant de le remettre à la bonne position :
sb.setThumb(retourDrawable); // Le drawable
sb.setProgress(-1); // progress négatif
sb.setProgress(positionThumb); // progress à la bonne place.