아래의 코드에서 '디렉토리명'과 '파일명' 부분에 자신이 원하는 디렉토리명과 파일명을 입력해주면 되겠다. 

 

 

 

private void screenshot(Bitmap bm) {

try {

     File path = new File("/디렉토리명");

                   

          if(! path.isDirectory()) {

     path.mkdirs();

          }

          

String temp = "/디렉토리명/";

temp = temp + "파일명";

          temp = temp + ".jpg";

            

FileOutputStream out = new FileOutputStream(temp);

            bm.compress(Bitmap.CompressFormat.JPEG, 100, out);

                   

            sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,

          Uri.parse("file://" + Environment.getExternalStorageDirectory())));

} catch (FileNotFoundException e) {

          Log.d("FileNotFoundException:", e.getMessage());

     }           

}

 

 

 

간단하게 코드를 설명하자면 path에 디렉토리 경로를 저장하고 만약 디렉토리가 존재하지 않으면 디렉토리를 생성하게 한다.

 

그 다음으로 디렉토리명에 파일명을 붙여 저장될 파일명을 지정하는 과정을 거쳐 파일 출력을 통해 JPEG파일의 형태로 저장하게 된다.

 

그 다음으로 브로드캐스트를 통해 새로운 파일을 검색하도록하여 갤러리에서 저장된 그림 파일을 확인할 수 있게 해준다.

 

 

 

위의 메소드만 실행해서는 파일이 저장되었는지 확일 할 수 없으므로 위의 뇌구조 테스트 어플에서 처럼

 

어떠한 파일명으로 저장되었는지 확인 출력해주는 토스트 메시지를 하나 간단하게 띄워주면 더욱 좋을 것 같다.

 

 

button.setOnClickListener(new OnClickListener() {

                     

@Override

     public void onClick(View v) {

     try {

          View v1 = layout.getRootView();

               v1.setDrawingCacheEnabled(true);

               bm = v1.getDrawingCache();

               screenshot(bm);

               Toast.makeText(MainActivity.this, "저장되었습니다.", Toast.LENGTH_SHORT).show();

          } catch (Exception e) {

          e.printStackTrace();

          }

     }

});

 

 

  

 

위의 스크린샷 메소드를 사용하는 부분의 소스코드이다.  try-catch문의 스크린샷 메소드 호출 전에 루트뷰를 얻는 부분과

 

메소드 아래의 토스트 메시지를 띄워 저장이 되었음을 알려주는 부분으로 나눠볼 수 있을 것 같다.

번호 제목 글쓴이 날짜 조회 수
128 PC를 위한 최고의 안드로이드 에뮬레이터 황제낙엽 2023.01.18 3139
127 [Jetpack Compose UI / 상추님] GDG Jetpack compose 코드랩 수료 후기 (feat. 굿즈) 황제낙엽 2022.12.24 2372
126 [Jetpack Compose UI / kyj1991719] compose - Compose 이해 황제낙엽 2022.12.24 4028
125 [Jetpack Compose UI / 꾸준] Compose 가 뭔데...? 황제낙엽 2022.12.24 4037
124 [Jetpack Compose UI / IIVIKI] Compose 학습과 분석 황제낙엽 2022.12.24 4052
123 [Jetpack Compose UI] 스터디 시작하기 황제낙엽 2022.12.24 4001
122 [개발하는 정대리] 취준생을 위한 안드로이드 앱만들기 - 바텀네비게이션 뷰, 네비게이션 AAC file 황제낙엽 2022.12.22 3882
121 [개발하는 정대리] 취준생을 위한 안드로이드 앱만들기 - 뷰바인딩 file 황제낙엽 2022.12.22 3852
120 [개발하는 정대리] 취준생을 위한 안드로이드 앱만들기 - 라이브데이터 뷰모델 file 황제낙엽 2022.12.21 3830
119 [대왕놀] ImageButton in Compose (IconButton) 황제낙엽 2022.12.20 4107
118 [대왕놀] compose instrumentation test tutorial 황제낙엽 2022.12.20 3987
117 [대왕놀] Switch in Compose 황제낙엽 2022.12.20 4107
116 [대왕놀] EditText in Compose (TextField) 황제낙엽 2022.12.20 4024
115 [대왕놀] margin in Compose 황제낙엽 2022.12.20 4105
114 [대왕놀] modifier in compose 황제낙엽 2022.12.20 4183
113 [대왕놀] Button in Compose file 황제낙엽 2022.12.20 4227
112 [대왕놀] TextView in Compose (Text) 황제낙엽 2022.12.20 4084
111 [대왕놀] ImageView in Compose (Image) 황제낙엽 2022.12.20 4020
110 [대왕놀] LinearLayout in Compose (Row, Column) 황제낙엽 2022.12.20 4116
109 [대왕놀] Introduction to Jetpack compose 황제낙엽 2022.12.20 3966