sitelink1 | https://birdea.blog.me/220619517456 |
---|---|
sitelink2 | |
sitelink3 |
안드로이드 화면 스캔에 관한 방법들을 찾는 중이다.
방법 1. View 내부의 drawing cache를 읽어오기
View view.buildDrawingCache();
Bitmap cachedBitmap = view.getDrawingCache();
Bitmap bitmap = cachedBitmap.copy(Bitmap.Config.ARGB_8888, false);
view.destroyDrawingCache();
return bitmap;
# 매우 간단하고 사용하기 편하다.
# 제약 : View의 크기와 메모리 상황에 따라 OOM 오류 발생
logcat > View too large to fit into drawing cache, needs 6085440 bytes, only 3686400 available
방법 2. 적절한 크기의 bitmap을 만들어 View의 내용을 때려넣기
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.layout(0, 0, view.width, view.height); // if you want to add multiple views then use it properly with loop method.
view.draw(canvas);
return bitmap;
# 역시 간단 명료 사용 편하다.
방법 1. 하나 이상의 View를 원하는 형태의 Bitmap으로 만들고 파일화 하려면 어떤 방법이 있을까나.
여러가지가 있을텐데... 성능 및 메모리 효율등을 충족시키는 방법이...
일단
canvas.drawBitmap(bitmap, left, top, paint) 함수를 응응하는 방법으로 처리.