예전에 전체화면 캡쳐에 관한 글을 올렸는데 예전 글 내용이
터치로 화면에 그림그릴수 있는 어플
이 잇는데 거기 메뉴에서 Screenshot을 하면 뒤에 배경이 검은색으로 나타나고 제가 그린 선만 저장되었습니다.
그런데 JPG말고 PNG로 저장하니까 뒤에 배경이 투명하게 저장되는걸 확인하였습니다.
그래서 제가 하고자 하는건 뒤에 배경 이미지까지 받아와서 같이 저장하여 전체 화면이 저장되는 것 처럼 할려고 합니다.
하지만 뒤에 배경이미지를 받아올려다 보니
framebuffer를 이용해서 받아오는 방법이 있더군요
그래서 /dev/graphics/fb0를 통해 framebuffer를 받아와서 전체화면 캡쳐를 하려고 합니다.
그런데 이 방법또한 루팅이 되어야 된다는 글이 있던데
루팅이 되어 있어야 가능한가요?
그리고 뒤에 배경이미지를 framebuffer말고 다른방법으로 받아올수 있는 방법이 있나요?
getDrawingCache() 방법을 저 그림그리는 어플에서도 쓰고 있는데
저위에 그림그리는 프로그램은 캔버스를 하나 더 띄워서 하는방법이라 맨위에 캔버스 밖에 저장이 안되고
뒤에 배경은 안나오네요 ㅠ
크레이지헌터님 // 상위 레이아웃이 어떤것인지 잘 이해가 안가요. 제가 그림그리는 어플에서 상위레이아웃이라고 하면 그림그리는 어플띄우기 전의 화면을 말하는건가요? 전 그림그리는 어플 뒤에 가려진 레이아웃을 받아오고 싶은데...
소스보니 커스텀뷰를 setContentView로 바로 쓰셨네요?
저는 XML레이아웃파일 구성해서 구현한 줄 알았어요.
제가 말씀드린 상위 레이아웃은
XML레이아웃으로 했을 경우 커스텀뷰를 포함하고 있는 레이아웃을 말씀 드린 거에요.
예제 소스를 보니까 MyView가 최상위 레이아웃이 되어 있네요.
setContentView(new MyView(this));
괜찮으시다면 위 소스를
LinearLayout rootLayout = new LinearLayout(this);
rootLayout.addView(new MyView(this));
setContentView(rootLayout);
rootLayout을 캡쳐하는 방식으로 바꾸시는게 어떠실지...
해보지는 않아서 될지 모르겠네요.




getDrawingCache() 쓰면 화면 전체를 떠올수있다는군요