btnShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 현재화면을 캡쳐해서 공유하기
View view1 = getWindow().getDecorView(); // 현재 화면을 가져옴 // 현재 화면을 가져오는 방법은 여러가지가 있지만, 여기서는 가장 간단한 방법을 사용
view1.setDrawingCacheEnabled(true); // 캐시를 사용하도록 설정 // 캐시를 사용하면, 화면이 바뀌어도 캐시를 사용하기 때문에 화면이 바뀌지 않는다.
Bitmap captureView = view1.getDrawingCache(); // 캐시를 비트맵으로 변환 // 비트맵이란 픽셀로 이루어진 이미지를 의미
String path = MediaStore.Images.Media.insertImage(getContentResolver(), captureView, "title", null); // 갤러리에 저장 // 갤러리에 저장하기 위해서는 Uri가 필요하다.
Uri uri = Uri.parse(path); // 저장한 경로를 Uri로 변환 // Uri는 경로를 의미
Intent intent = new Intent(Intent.ACTION_SEND); // 공유하기 위한 인텐트 생성
intent.setType("image/*"); // 이미지를 공유하기 위해 타입을 이미지로 설정 // 이미지를 공유하기 위해 타입을 이미지로 설정
intent.putExtra(Intent.EXTRA_STREAM, uri); // 공유할 이미지를 추가
startActivity(Intent.createChooser(intent, "공유하기")); // 공유하기 창 띄우기
// 텍스트 보내기
// Intent intent = new Intent(Intent.ACTION_SEND);
// intent.setType("text/plain");
// intent.putExtra(Intent.EXTRA_SUBJECT, "알코올 레시피");
// intent.putExtra(Intent.EXTRA_TEXT, "알코올 레시피 앱에서 "+txtAlchol.getText().toString()+"를 추천합니다.");
// startActivity(Intent.createChooser(intent, "알코올 레시피"));
}
});
'Android' 카테고리의 다른 글
android Spannable을 이용한 TextView에 버튼 만들고 버튼을 클릭하면 선택한 Spannable만 제거 (0) | 2023.03.24 |
---|---|
Android Textview 아이템 클릭이벤트 [Spannable] (0) | 2023.03.23 |
fragment에서 activity 로 이동할때 LifeCycle을 Log로 확인 (0) | 2023.03.21 |
Retrofit2 cache & Wireshark packet capture (0) | 2023.03.20 |
retrofit2 okhttp response의 글자가 깨진다면 (0) | 2023.03.16 |