2010-03-10 3 views
374

Comment puis-je convertir une image Bitmap en Drawable?Comment convertir un bitmap en Drawable dans android?

Merci, Farha

+2

Salut je suis la réponse de votre question sur ce lien et a obtenu la bonne réponse, je le fais. et j'ai réussi, j'espère que vous avez eu du succès. bonne chance http://www.androidsnippets.com/convert-bitmap-to-drawable –

+2

La contribution est une excellente façon de dire thanx ... :) Contributions en termes de donner des réponses ... :) – Farhan

+0

@Farhan k ...... – Abhi

Répondre

236

On dirait que vous voulez utiliser BitmapDrawable

De la documentation:

Un Drawable qui enveloppe une image bitmap et peut être carrelée, étiré ou aligné. Vous pouvez créer un BitmapDrawable à partir d'un chemin de fichier , un flux d'entrée, à travers XML inflation, ou à partir d'un objet Bitmap .

+18

@Deprecated Utilisez BitmapDrawable (Resources, Bitmap) pour vous assurer que le retraitable a correctement défini sa densité cible. –

+62

poste non utile, commentaire non utile. serait mieux si vous ajoutez du code – voghDev

739

Essayez cela, il convertit une image de type Bitmap à Drawable

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

@Deprecated Utilisez BitmapDrawable (Resources, Bitmap) pour vous assurer que le drawable a correctement défini sa densité cible. Créer drawable à partir d'un bitmap, ne traitant pas de la densité. – Murphy

+17

Il aurait fallu marquer cela avec un edit @ViliusK afin que les gens ne lisent pas le commentaire très upvoted et se demandent de quoi vous parlez. –

130

Après avoir vu une grande quantité de problèmes avec bitmaps mise à l'échelle de manière incorrecte lorsque converti en un BitmapDrawable, la manière générale de convertir doit être:

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

Sans Resources reference, le bitmap ne peut pas rendre correctement, même si à l'échelle correctement. Il existe de nombreuses questions sur ce qui serait résolu simplement en utilisant cette méthode plutôt que d'un appel direct avec seulement l'argument bitmap.

+9

Au moins commenter pourquoi si vous allez voter vers le bas.Ceci est 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 tirages créés directement à partir d'un bitmap ont souvent des erreurs de mise à l'échelle sans la référence getResources(). – Zulaxia

+3

c'est une réponse plus précise considérant que celui de @Manoj est déprécié. – Raykud

19

Si vous avez une image bitmap et que vous voulez l'utiliser dans étirables, comme

Bitmap contact_pic; //a picture to show in drawable 
drawable = new BitmapDrawable(contact_pic); 
+19

C'est maintenant obsolète. Utilisez le constructeur BitmapDrawable (Resources, Bitmap) maintenant. – schlingel

+1

@schlingel Cela fonctionne toujours bien et beaucoup d'entre nous l'utilisent dans nos projets, –

+1

C'est bon pour vous, mais n'aide pas lorsque Google finit par tuer ce constructeur et vous devez tout réécrire. – schlingel

29

Offical Bitmapdrawable documentation

Ceci est l'échantillon sur la façon de convertir bitmap to drawable

Bitmap bitmap; 
//Convert bitmap to drawable 
Drawable drawable = new BitmapDrawable(getResources(), bitmap); 
imageView.setImageDrawable(drawable); 
+0

réponse en double avec http://stackoverflow.com/a/4560707/517381 – ViliusK

+0

réponse en double – Daniel

+0

désolé ... je n'étais pas sérieux – Abhi

10

Juste faites 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 –

21

J'utilisé avec le contexte

//Convert bitmap to drawable 
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap); 
+1

Réponse en double. – CopsOnRoad

Questions connexes