* 현재 보고있는 해당 Activity 의 화면을 캡처할 경우 아래와 같은 함수를 사용하면된다.
public File ScreenShotActivity(View view){
view.setDrawingCacheEnabled(true);
Bitmap screenBitmap = view.getDrawingCache();
String filename = "screenshot"+"현재시간milliseonds"+".png";
File file = new File(Environment.getExternalStorageDirectory()+"폴더명", filename);
FileOutputStream os = null;
try{
os = new FileOutputStream(file);
screenBitmap.compress(Bitmap.CompressFormat.PNG, 100, os); //PNG파일로 만들기
os.close();
}catch (IOException e){
e.printStackTrace();
return null;
}
view.setDrawingCacheEnabled(false);
return file;
}
1. 만약 화면 캡처후 갤러지에 추가하고 싶은경우
File file = ScreenShot(v);
if(file !=null){
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file )));
}
2. 캡처한 파일을 공유하기로 내보내고 싶은 경우
try {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri contentUri = FileProvider.getUriForFile(act, "패키지명", file);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
} else {
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
}
act.startActivity(Intent.createChooser(shareIntent, ""));
이상 화면 캡처하기 및 갤러리저장하기, 공유하기 포스팅을 마치도록 하겠습니다.
'IT개발일지 > Android' 카테고리의 다른 글
[Android] 카카오 메세지 템플릿 만들기 (카카오링크,Custom) (1) | 2019.12.26 |
---|---|
[Android] java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process (0) | 2019.12.18 |
[Android]얼굴분석 API - MicroSoft Face API (0) | 2019.12.18 |
[Android] 초간단 카카오 채널연동하기 (0) | 2019.11.28 |
[Android]Must be called from main thread of fragment host |에러 (0) | 2019.11.27 |