안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
제가 투명액티비를 만들어서 투명액티비티에 그림을 그리고 screenshot 을 구현하고 있습니다.
일단 어느 화면에서도 투명액티비티를 실행시키면 마치 그 화면에서 그림을 그리는 효과는 되고 있습니다.
그런데 이 그림을 저장하기 위해서 getWindow().getDecorView(); 로 현재 view 를 가져와 screenshot 을
구현하였으나 투명액티비티의 background 가 뒤의 화면이 아닌 투명한 drawble 이라 빈 화면에 제가 그린 그림만
사진으로 저장되고 있습니다.
투명액티비티를 실행시켰을때 뒤에 보이는 화면의 view 를 얻어올수 있는 방법을 알고 싶습니다.
투명액티비티의 경우 특정 어플에서 실행시킨것이 아니라 Noti bar 에 icon 을 생성하여 icon 클릭시 실행되게 구성되어 있습니다.
밑의 code 는 Noti icon 클릭시 실행되는 그림그려주는 투명한 액티비티에서 screenshot 부분입니다.
case SCRSHOT_MENU_ID:
try
{
View v = drawing.this.getWindow().getDecorView();
screenshot(v);
}
catch(Exception e)
{
Log.v("VNC",e.toString());
}
return true;
}
return super.onOptionsItemSelected(item);
}
public void screenshot(View view)throws Exception {
view.setDrawingCacheEnabled(true);
Bitmap screenshot = view.getDrawingCache();
String filename = "screenshot.JPEG";
try {
File f = new File(Environment.getExternalStorageDirectory(), filename);
f.createNewFile();
OutputStream outStream = new FileOutputStream(f);
screenshot.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.close();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
} catch (IOException e) {
e.printStackTrace();
}
view.setDrawingCacheEnabled(false);
}


