Android: Est-il possible de mettre à jour un ImageView / ImageButton avec un nombre pour afficher le nombre de nouveaux messages?
Dans iOS, nous avons une fonction de mise à jour de l'icône de l'application avec les nouveaux messages en attente pour l'utilisateur en montrant un petit nombre sur le coin supérieur droit de l'icône et de la même façon, je voudrais savoir si nous avons méthode pour mettre à jour une ImageView/ImageButton dans android(Ici, je ne suis pas à la recherche à la mise à jour de l'icône sur l'écran d'accueil, mais à l'intérieur de mon application).
Par exemple, le pic montre le fond rouge de l'icône avec le nombre de messages en attente d'être lu en rouge et si il n'y a pas de messages, il montre avec un fond gris.
Merci,
source d'informationauteur Sana
Vous devez vous connecter pour publier un commentaire.
J'ai été intéressé par ce que je ne savais comment le faire non plus. J'ai donc commencé à regarder, et voici comment je l'ai fait.
icon.png
à partir du sdkres/drawable/shapecount.xml
res/layout/my_widget_layout.xml
Une maison widget est en fait un mode normal, vous pouvez construire dans un fichier XML comme vous le feriez pour une activité. Il y a quelques règles à suivre. Voir ce lien pour la directive
Dans ce lien qui vous montre comment construire un AppWidget, vous pouvez voir le code suivant:
où
R.layout.appwidget_provider_layout
est la mise en page de votre maison widget, qui seramy_widget_layout.xml
À partir de ce
views
vous pouvez définir la valeur que vous voulez pour n'importe quel nombre d'affichage de texte:et ensuite vous avez juste à mettre à jour le widget lui-même:
REMARQUE:
La updatePeriodMillis ne pas permettre le widget pour demander une mise à jour plus d'une fois toutes les 30 min donc j'utilise une combinaison de BroadcastReceiver et Service
EDIT:
Voir ci-dessous un contrôle de l'activité si le nombre que vous voulez doit être dans une
Activity
au lieu d'unAppWidget
. Il utilise le même XMLs comme ci-dessus:Que vous êtes à la recherche pour ce faire à l'intérieur de votre application, pas sur l'écran d'accueil, je suggère que vous venez de créer une ImageView sous-classe, et remplacer onDraw() - n'importe quel arrière-plan de la peinture, de l'appeler super.onDraw(), puis de faire de premier plan de la peinture.
Sinon, vous pouvez utiliser Bitmap.copie etc. pour construire une image composite à partir de la base de l'icône, et une petite image avec le nombre de message.
Espère que cette aide,
Phil Lello