summaryrefslogtreecommitdiff
path: root/mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt
diff options
context:
space:
mode:
Diffstat (limited to 'mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt')
-rw-r--r--mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt25
1 files changed, 25 insertions, 0 deletions
diff --git a/mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt b/mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt
new file mode 100644
index 0000000000..785ed32840
--- /dev/null
+++ b/mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt
@@ -0,0 +1,25 @@
+package com.example.mapbox.extensions
+
+import android.content.res.Resources
+import android.graphics.Bitmap
+import android.graphics.Canvas
+import android.graphics.drawable.BitmapDrawable
+import android.graphics.drawable.Drawable
+import androidx.annotation.DrawableRes
+
+fun Resources.getBitmapFromDrawable(@DrawableRes drawableResId: Int): Bitmap {
+ return getDrawable(drawableResId, null).getBitmapFromDrawable()
+}
+
+fun Drawable.getBitmapFromDrawable(): Bitmap {
+ return if (this is BitmapDrawable) {
+ bitmap
+ } else {
+ val bitmap = Bitmap.createBitmap(intrinsicWidth, intrinsicHeight, Bitmap.Config.ARGB_8888)
+ Canvas(bitmap).let {
+ setBounds(0, 0, it.width, it.height)
+ draw(it)
+ bitmap
+ }
+ }
+} \ No newline at end of file