#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)
}
문제 있을시 알려 주세요.
좋은 하루 되세요!
'Android - Snippet' 카테고리의 다른 글
[Android] aab를 apk로 변환 (1) | 2022.02.10 |
---|---|
[Android] StatusBar 없애기/색상변경/글자색상변경 (0) | 2021.11.27 |
[Android] ExifInterface Under Nougat(7.0) (1) | 2021.11.25 |
[Android] PxToDp, DpToPx (0) | 2021.11.12 |
[Android] logcat 로그 잘림 (0) | 2021.10.09 |