1095 Stimmen

Wie konvertiert man ein Drawable in ein Bitmap?

Ich möchte eine bestimmte Drawable als Hintergrundbild des Geräts, aber alle Hintergrundbildfunktionen akzeptieren Bitmap s nur. Ich kann nicht verwenden WallpaperManager weil ich vor 2.1 bin.

Außerdem werden meine Zeichnungsdateien aus dem Internet heruntergeladen und befinden sich nicht in R.drawable .

1 Stimmen

2 Stimmen

Bitte wählen Sie die richtige Antwort, nämlich diese: stackoverflow.com/a/3035869/4548520

1 Stimmen

1voto

Alberto Punkte 386

Ich habe einige Antworten in diesem Thread verwendet, aber einige von ihnen funktionierten nicht wie erwartet (vielleicht hatten sie in älteren Versionen funktioniert), aber ich wollte meine nach ein paar Versuchen und Fehlern teilen, indem ich eine Erweiterungsfunktion verwendete:

val markerOption = MarkerOptions().apply {
    position(LatLng(driver.lat, driver.lng))
    icon(R.drawabel.your_drawable.toBitmapDescriptor(context))
    snippet(driver.driverId.toString())
}
mMap.addMarker(markerOption)

Dies ist die Erweiterungsfunktion:

fun Int.toBitmapDescriptor(context: Context): BitmapDescriptor {
    val vectorDrawable = ResourcesCompat.getDrawable(context.resources, this, context.theme)
    val bitmap = vectorDrawable?.toBitmap(
        vectorDrawable.intrinsicWidth,
        vectorDrawable.intrinsicHeight,
        Bitmap.Config.ARGB_8888
    )
    return BitmapDescriptorFactory.fromBitmap(bitmap!!)
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X