Comment convertir un Bitmap en Drawable dans Android?

447

Comment puis-je convertir une image Bitmap en dessinable?

Farha Ansari
la source
2
Salut j'ai la réponse à votre question suivez ce lien et j'ai la bonne réponse je le fais. et je réussis, j'espère que vous avez réussi. bonne chance androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh
2
La contribution est un excellent moyen de dire merci ... :) Contributions en termes de réponses ... :)
Farhan
@Farhan k .......
Abhi

Réponses:

265

Sonne comme si vous vouliez l'utiliser BitmapDrawable

De la documentation:

Un Drawablequi enveloppe une image bitmap et peut être mis en mosaïque, étiré ou aligné. Vous pouvez créer un à BitmapDrawablepartir d'un chemin de fichier, d'un flux d'entrée, via le gonflage XML ou à partir d'un Bitmap objet.

Graeme Duncan
la source
21
@Deprecated Utilisez BitmapDrawable (Ressources, Bitmap) pour vous assurer que le dessinable a correctement défini sa densité cible.
Camille Sévigny
79
message non utile, commentaire non utile. serait mieux si vous ajoutez du code
voghDev
827

Essayez ceci, il convertit une Bitmapimage de type enDrawable

Drawable d = new BitmapDrawable(getResources(), bitmap);
Manoj
la source
Voilà ce que j'attendais!
Mazend
147

Après avoir vu un grand nombre de problèmes avec la mise à l'échelle incorrecte des bitmaps lors de leur conversion en a BitmapDrawable, la façon générale de convertir devrait être:

Drawable d = new BitmapDrawable(getResources(), bitmap);

Sans Resources reference, le bitmappeut ne pas s'afficher correctement, même lorsqu'il est mis à l'échelle correctement. Il y a de nombreuses questions ici qui seraient résolues simplement en utilisant cette méthode plutôt qu'un simple appel avec seulement l' bitmapargument.

Zulaxia
la source
12
Au moins, expliquez pourquoi si vous allez voter contre. Il s'agit d'une réponse parfaitement valide et apporte des informations supplémentaires pour résoudre les problèmes qui peuvent survenir avec les autres réponses proposées. Les dessinables créés directement à partir d'une image bitmap comportent souvent des erreurs de mise à l'échelle sans la référence getResources ().
Zulaxia
4
c'est une réponse plus précise étant donné que celle de @Manoj est déconseillée.
Raykud
35

Documentation Bitmap extractible officielle

Voici un exemple sur la façon de convertir un bitmap en dessinable

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);
Cristiana Chavez
la source
désolé ... je n'étais pas sérieux
Abhi
5
Vous auriez pu voter positivement au lieu d'écrire la même réponse.
CopsOnRoad du
31

J'ai utilisé avec le contexte

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
Samuel Ivan
la source
5
Réponse en double.
CopsOnRoad
19

Si vous avez une image bitmap et que vous souhaitez l'utiliser en dessinable, comme

Bitmap contact_pic;    //a picture to show in drawable
drawable = new BitmapDrawable(contact_pic); 
Pir Fahim Shah
la source
20
C'est obsolète maintenant. Utilisez maintenant le constructeur BitmapDrawable (Resources, Bitmap).
schlingel
1
@schlingel Il fonctionne toujours bien et beaucoup d'entre nous l'utilisent dans nos projets,
Pir Fahim Shah
2
C'est bon pour vous, mais cela n'aide pas lorsque Google tue finalement ce constructeur et que vous devez tout réécrire.
schlingel
@schlingel oui, mais encore quelqu'un pressé l'utilise et cela fait un travail
Pir Fahim Shah
11

Faites juste ceci:

private void setImg(ImageView mImageView, Bitmap bitmap) {

    Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
    mImageView.setDrawable(mDrawable);
}
Joolah
la source
1
Pas la solution pour ce qu'il demande
IIRed-DeathII
3

1) bitmap à Drawable:

Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
// mImageView.setDrawable(mDrawable);

2) dessinable sur Bitmap:

Bitmap mIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);
// mImageView.setImageBitmap(mIcon);
Sanjayrajsinh
la source
1

En voici un autre:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);
SolidSnake
la source
0

carte binaire secrète à dessiner dans l'application sketchware à l'aide de code

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
amosu dona
la source