Wie konvertiere ich eine Bitmap in Drawable in Android?


446

Wie kann ich ein Bitmap-Bild in Drawable konvertieren?


2
Hallo, ich habe die Antwort auf deine Frage bekommen, folge diesem Link und habe die richtige Antwort, ich mache es. und ich Erfolg, ich hoffe, Sie haben den Erfolg.
Viel

2
Beitrag ist eine gute Möglichkeit, Danke zu sagen ... :) Beiträge in Bezug auf Antworten ... :)
Farhan

@ Farhan k .......
Abhi

Antworten:


264

Klingt wie Sie verwenden möchten BitmapDrawable

Aus der Dokumentation:

A Drawable, das eine Bitmap umschließt und gekachelt, gedehnt oder ausgerichtet werden kann. Sie können einen BitmapDrawableaus einem Dateipfad, einem Eingabestream, durch XML-Inflation oder aus einem Bitmap Objekt erstellen .


21
@Deprecated Verwenden Sie BitmapDrawable (Ressourcen, Bitmap), um sicherzustellen, dass das Drawable seine Zieldichte korrekt festgelegt hat.
Camille Sévigny

79
nicht nützlicher Beitrag, nicht nützlicher Kommentar. wäre besser, wenn Sie etwas Code hinzufügen
voghDev

827

Versuchen Sie dies, es konvertiert ein BitmapTypbild inDrawable

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

Das habe ich erwartet!
Mazend

147

Nachdem bei der Konvertierung in a eine große Anzahl von Problemen mit falsch skalierten Bitmaps aufgetreten ist BitmapDrawable, sollte die allgemeine Konvertierungsmethode wie folgt lauten:

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

Ohne das Resources referencewird das bitmapmöglicherweise nicht richtig gerendert, selbst wenn es richtig skaliert ist. Hier gibt es zahlreiche Fragen, die einfach mit dieser Methode gelöst werden könnten, anstatt nur mit dem bitmapArgument direkt aufzurufen .


12
Kommentieren Sie zumindest, warum, wenn Sie abstimmen wollen. Dies ist eine absolut gültige Antwort und enthält zusätzliche Informationen zur Lösung von Problemen, die bei den anderen angebotenen Antworten auftreten können. Drawables, die direkt aus einer Bitmap erstellt wurden, weisen häufig Skalierungsfehler ohne die Referenz getResources () auf.
Zulaxia

4
Dies ist eine genauere Antwort, wenn man bedenkt, dass die von @Manoj veraltet ist.
Raykud

35

Offizielle Bitmapdrawable- Dokumentation

Dies ist ein Beispiel für die Konvertierung von Bitmap in Drawable

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

Entschuldigung ... ich war nicht ernst
Abhi

5
Sie hätten abstimmen können, anstatt dieselbe Antwort zu schreiben.
CopsOnRoad

31

Ich habe mit Kontext verwendet

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

5
Doppelte Antwort.
CopsOnRoad

19

Wenn Sie ein Bitmap-Bild haben und es in Drawable verwenden möchten, wie z

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

20
Das ist jetzt veraltet. Verwenden Sie jetzt den BitmapDrawable-Konstruktor (Ressourcen, Bitmap).
Schlingel

1
@schlingel Es funktioniert immer noch gut und viele von uns verwenden es in unseren Projekten,
Pir Fahim Shah

2
Das ist gut für Sie, hilft aber nicht, wenn Google diesen Konstruktor irgendwann beendet und Sie alles neu schreiben müssen.
Schlingel

@schlingel ja, aber immer noch jemand in Eile verwenden dies und es macht eine Arbeit
Pir Fahim Shah

11

Mach das einfach:

private void setImg(ImageView mImageView, Bitmap bitmap) {

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

1
Nicht die Lösung für das, was er verlangt
IIRed-DeathII

2

1) Bitmap zu Drawable:

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

2) auf Bitmap zeichnbar:

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

1

hier ist ein anderes:

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

0

verdeckte Bitmap zum Zeichnen in der Sketchware-App mit Code

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.