Android将ImageView显示的图原样取出转换为Bitmap,Kotlin
Kotlin
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Rect
import android.graphics.drawable.Drawable
fun drawableToIntrinsicBitmap(imageView:ImageView): Bitmap? {
val drawable = imageView.drawable ?: return null
val intrinsicWidth = drawable.intrinsicWidth
val intrinsicHeight = drawable.intrinsicHeight
if (intrinsicWidth <= 0 || intrinsicHeight <= 0) {
return null
}
val bitmap = Bitmap.createBitmap(
intrinsicWidth,
intrinsicHeight,
Bitmap.Config.ARGB_8888
)
val canvas = Canvas(bitmap)
val oldBounds = Rect(drawable.bounds)
drawable.setBounds(
0,
0,
intrinsicWidth,
intrinsicHeight
)
drawable.draw(canvas)
drawable.bounds = oldBounds
return bitmap
}