summaryrefslogtreecommitdiff
path: root/mapbox/src/main/java/com/example/mapbox/extensions/ResourceExtensions.kt
blob: 785ed32840a13b89ff9e8e9b61ee01ba61abff72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
        }
    }
}