182 votes

conversion d'une image de ressource dessinable en bitmap

J'essaie d'utiliser le Notification.Builder.setLargeIcon(bitmap) qui prend une image bitmap. J'ai l'image que je veux utiliser dans mon dossier drawable, alors comment puis-je la convertir en bitmap ?

419voto

aoeu Points 9342

Vous voulez probablement dire Notification.Builder.setLargeIcon(Bitmap) n'est-ce pas ? :)

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon);
notBuilder.setLargeIcon(largeIcon);

Il s'agit d'une excellente méthode pour convertir des images de ressources en Android. Bitmap s.

2 votes

Pourquoi ne pas cliquer sur le bouton "Modifier" et corriger la question ? (C'est plutôt une suggestion pour l'avenir - je l'ai déjà fait pour cette question...) Je vous suggère d'éditer votre réponse pour ne pas critiquer leurs fautes de frappe. Je ne le fais pas pour vous). Sur une autre note, +1 pour avoir une réponse qui fonctionne :)

1 votes

Je ne pense pas que ce soit bien. en guise de réponse générale - en tout cas pas depuis qu'Android a commencé à supporter les dessins vectoriels.

0 votes

Après avoir mis en œuvre la solution, j'obtiens ceci ... ... E/CommitToConfigurationOperation: Malformed snapshot token (size): ... E/NotificationService: Not posting notification with icon==0: Notification(pri=0 contentView=null vibrate=null sound=content://settings/system/notification_sound defaults=0x0 flags=0x10 color=0x00000000 vis=PRIVATE) ... E/NotificationService: WARNING: In a future release this will crash the app:...

46voto

AndyW Points 472
Drawable myDrawable = getResources().getDrawable(R.drawable.logo);
Bitmap myLogo = ((BitmapDrawable) myDrawable).getBitmap();

Depuis l'API 22 getResources().getDrawable() est obsolète, nous pouvons donc utiliser la solution suivante.

Drawable vectorDrawable = VectorDrawableCompat.create(getResources(), R.drawable.logo,  getContext().getTheme());
Bitmap myLogo = ((BitmapDrawable) vectorDrawable).getBitmap();

1 votes

Il me dit que bitmapDrawable ne peut pas être résolu à un type

0 votes

Salut @20Cents avez-vous essayé stackoverflow.com/questions/18218938/

0 votes

Il suffit d'appuyer sur les touches ctrl+shift+O si vous recevez le message "cannot be resolved to a type for bitmapDrawable". À la vôtre !

13voto

aromero Points 10666
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);

Context peut être votre Activity .

2 votes

Et pour les dessinateurs de vecteurs ?

9voto

user3445599 Points 230

Voici une autre façon de convertir une ressource dessinable en bitmap dans Android :

Drawable drawable = getResources().getDrawable(R.drawable.input);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();

2 votes

En quoi la vôtre est-elle différente de la solution d'AndyW ? C'est la même !

7voto

Ravi Makvana Points 2759

Créer d'abord une image bitmap

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);

Définit maintenant le bitmap dans Notification Builder Icon....

Notification.Builder.setLargeIcon(bmp);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X