안드로이드 개발 질문/답변
(글 수 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); }