Come convertire un Bitmap in Drawable in Android?


447

Come posso convertire un'immagine Bitmap in Drawable?


2
Ciao ho la risposta alla tua domanda, segui questo link e ho la risposta giusta, lo faccio. e io successo, spero che tu abbia avuto successo. buona fortuna androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh

2
Il contributo è un ottimo modo per dire grazie ... :) Contributi in termini di dare risposte ... :)
Farhan,

@Farhan k .......
Abhi,

Risposte:


265

Sembra che tu voglia usare BitmapDrawable

Dalla documentazione:

A Drawableche avvolge una bitmap e può essere piastrellato, allungato o allineato. È possibile creare un BitmapDrawableda un percorso di file, un flusso di input, tramite l'inflazione XML o da un Bitmap oggetto.


21
@ Deprecated Utilizzare BitmapDrawable (Risorse, Bitmap) per assicurarsi che il disegno abbia impostato correttamente la densità target.
Camille Sévigny,

79
post non utile, commento non utile. sarebbe meglio se aggiungi del codice
voghDev

827

Prova questo converte Bitmapun'immagine di tipo inDrawable

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

Questo è quello che mi aspettavo!
mazend

147

Avendo visto una grande quantità di problemi con bitmap ridimensionare in modo errato quando convertito in a BitmapDrawable, il modo generale per convertire dovrebbe essere:

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

Senza il Resources reference, bitmappotrebbe non essere visualizzato correttamente, anche se ridimensionato correttamente. Ci sono numerose domande qui che verrebbero risolte semplicemente usando questo metodo piuttosto che una semplice chiamata con solo l' bitmapargomento.


12
Almeno commenta il motivo per cui se hai intenzione di votare in basso. Questa è una risposta perfettamente valida e fornisce informazioni aggiuntive per risolvere i problemi che possono verificarsi con le altre risposte offerte. I drawable creati direttamente da una bitmap spesso presentano errori di ridimensionamento senza il riferimento getResources ().
Zulaxia,

4
questa è una risposta più accurata considerando che quella di @Manoj è obsoleta.
Raykud,

35

Documentazione Bitmapdrawable ufficiale

Questo è un esempio di come convertire bitmap in drawable

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

scusa ... non ero serio
Abhi,

5
Avresti potuto effettuare l'upgrade invece di scrivere la stessa risposta.
CopsOnRoad,

31

Ho usato con il contesto

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

5
Risposta duplicata.
CopsOnRoad,

19

Se hai un'immagine bitmap e vuoi usarla in un disegno, ad esempio

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

20
Adesso è deprecato. Utilizzare ora il costruttore BitmapDrawable (Risorse, Bitmap).
schlingel,

1
@schlingel Funziona ancora bene e molti di noi lo usano nei nostri progetti,
Pir Fahim Shah,

2
Va bene per te, ma non aiuta quando Google alla fine uccide questo costruttore e devi riscrivere tutto.
schlingel,

@schlingel sì, ma ancora qualcuno di fretta lo usa e fa un lavoro
Pir Fahim Shah

11

Basta fare questo:

private void setImg(ImageView mImageView, Bitmap bitmap) {

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

1
Non è la soluzione per quello che sta chiedendo
IIRed-DeathII

3

1) bitmap a Drawable:

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

2) disegnabile su Bitmap:

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

1

eccone un altro:

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

0

converti bit map in drawable nell'app di sketchware usando il codice

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.