마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

화면을 캡쳐해서 갤러리에 저장하는데 용량이 너무 커서 줄이고 싶습니다.

0 추천
int width_container = boardLayout.getMeasuredWidth() ;//캡쳐할 레이아웃 크기

int height_container = boardLayout.getMeasuredHeight() ;//캡쳐할 레이아웃 크기
Bitmap captureView = Bitmap.createBitmap(width_container,
                        height_container, Bitmap.Config.ARGB_8888);

이렇게 boardLayout 의 크기를 가져와서 캡쳐를 하려고 하는데요.

지금 저 Layout의 크기는 350dp, 200dp 입니다.

그런데 저장을 하면 이미지가 1300대의 크기가 되더라구요.

이 크기를 줄이거나, 용량을 좀 줄이고 싶은데 어디에서 뭘 써야할지 모르겠습니다.

(크기를 줄이고 싶어서 createBitmap 안에 width_container, height_container 대신 숫자를 적어봤는데 짤리더라구요... )

초보라서 모르는게 많습니다. 도와주세요.

sean111 (1,220 포인트) 님이 2015년 9월 22일 질문

2개의 답변

0 추천
 
채택된 답변

아래 코드 넣어보세요.

captureView.compress(Bitmap.CompressFormat.JPEG, 60, stream);

100이 원본이고, 숫자가 낮아질수록 용량이 줄어듭니다.

webgori 님이 2015년 9월 22일 답변
sean111님이 2015년 9월 25일 채택됨
아 위에 올려드리진 않았지만

fos = new FileOutputStream("/sdcard/ESC/ESC.png");
Log.d("[screenshot]", " : " + boardLayout.getDrawingCache());
captureView.compress(Bitmap.CompressFormat.PNG, 1, fos);

이렇게 넣은게 있었어요.
지금 그 숫자를 1로 넣었는데 이것보다도 더 적은 용량으로 만들고 싶은데 불가능일까요?
말씀하신 용량이 큰 이미지를 올려주실 수 있으신가요?

테스트 해보겠습니다.
0 추천
비트맵 해상도 자체를 줄여보세요.
기기마다 해상도가 다르니 이미지 해상도에 제한을 두는 것이 좋습니다. 요즘은 2560급 해상도도 있으니까요. 밖이라서 이미지 크기 변경하는 코드를 올려드릴 수가 없네요;
Jinthree (8,980 포인트) 님이 2015년 9월 23일 답변
...