Android - Snippet
[Android] View 이미지 캡쳐(Get Bitmap From View)
슝슝55
2021. 10. 14. 22:29
#What
View에 보여지는 이미지 그대로 Bitmap으로 떨구어야 하는 경우가 있습니다
배경을 깔고 그 위에 텍스트를 쓰고 '배경+Text'를 중첩해서 이미지를 만들어야 할 경우에 사용할 수 있는 예제 입니다
#How
/**
* View Image -> Bitmap
*/
fun getBitmapFromView(view: View): Bitmap? {
if (view.measuredWidth <= 0 || view.measuredHeight <= 0) {
//Err
return null
}
val bitmap = Bitmap.createBitmap(
view.measuredWidth,
view.measuredHeight,
Bitmap.Config.ARGB_8888
)
val canvas = Canvas(bitmap)
view.draw(canvas)
return bitmap
}
간단하지만
해당 기능을 뷰가 Attach 되기 전에 호출 할 경우 이미지가 제대로 생성 되지 않습니다
이 경우엔 View.post() 를 사용해 보십시용
뷰가 Attach 되지 않았다면 될 때까지 runnable을 연기시켜 줍니다
viewToCapture.post{
val bitmap =getBitmapFromView(viewToCapture)
}
문제 있을시 알려 주세요.
좋은 하루 되세요!