안드로이드 개발자라면 기본적으로 디바이스의 화면을 DDMS에서 버튼 클릭으로 캡쳐가 가능하다는 사실을 알고 있을 것이다.
그건 그렇고…
소스 코드에서 캡쳐하는 방법은 없을까…..
여기 있다..
public void screenshot(View view)throws Exception {
view.setDrawingCacheEnabled(true);
Bitmap screenshot = view.getDrawingCache();
String filename = "screenshot.png";
try {
File f = new File(Environment.getExternalStorageDirectory(), filename);
f.createNewFile();
OutputStream outStream = new FileOutputStream(f);
screenshot.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
view.setDrawingCacheEnabled(false);
}
SDCard 에 파일을 담아준다.
화면에 뿌릴때 캐시를 사용하게 하여, 중간에 그 캐시를 가로채는 것이다.
가로챈 캐시를 Bitmap으로 담아와서 PNG 형식으로 저장한다.
파라미터는 현재 화면의 View 이다. 전체 화면을 캡쳐하고 싶으면
Activity.getWindow().getDecorView()
을 주면 되겠다.
'IT개발 > 안드로이드' 카테고리의 다른 글
안드로이드 소스에서 shell 명령어 실행하기 (0) | 2011.07.10 |
---|---|
Android, low level shell click on screen (0) | 2011.07.10 |
[Android] How to send key event by adb command (0) | 2011.07.10 |
안드로이드 키 이벤트 (adb shell로 보내는 법) (0) | 2011.07.10 |
Android UI/Application Exerciser Monkey (1) | 2011.07.10 |