Comment convertir un Bitmap en Drawable dans Android?


447

Comment puis-je convertir une image Bitmap en dessinable?


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.


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);

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.


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);

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);

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); 

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);
}

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);

1

En voici un autre:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);

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);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.