반응형
스크린샷을 찍는데, 확인을 못했던건지 괜찮았던건지 처음찍었던 화면만 나오는 경우가 있군요.
Activity의 전환이 없으면 처음 찍었던 스크린샷만 나옵니다.ㅠ
이럴 경우 destroyDrawingCache();를 해주시면 이런 증상이 없어집니다.
- share.buildDrawingCache();
- Bitmap bm=share.getDrawingCache();
- FileOutputStream out;
- try{
- bm.compress(Bitmap.CompressFormat.JPEG,100, out);
- Intent shareIntent = new Intent();
- shareIntent.setAction(Intent.ACTION_SEND);
- shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(sharefile));
- shareIntent.setType("image/jpeg");
- startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.share)));
- e.printStackTrace();
- }
- share.destroyDrawingCache();
1번 라인을 보시면 share가 스크린샷을 찍으려는 뷰내지는 레이아웃입니다.
이부분을 buildDrawingCache();를 이용하여 캐시에 저장해주고, 2번 라인에서처럼
getDrawingCache();를 사용하여 비트맵으로 가져옵니다.
3~8번은 jpg파일로 저장하는 부분이고, 10~16까지하면 공유를 하는 부분입니다.
17번에 보시면 1번라인에서 캐쉬로 그렸던 부분을 destroy해줍니다.
이렇게 하면 같은 activity안에서 찍을때마다 첫번째 화면만 찍히는 문제를 해결할 수 있습니다.^^
반응형
'Study > Android' 카테고리의 다른 글
fragment의 웹브라우저 뒤로가기 (0) | 2015.02.12 |
---|---|
android 웹브라우저 만들기 (0) | 2015.02.12 |
에뮬레이터 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE (0) | 2015.02.11 |
surfaceview 에서 screenshot 찍기 (3) | 2015.02.11 |
daum 로컬API 앱 불가(웹만 가능) (0) | 2015.02.11 |