달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
728x90
반응형
안드로이드 - 현재 화면을 그림으로 저장

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

이걸 안하면 당연히 안댐~

01.m_mainView.setDrawingCacheEnabled( true ) ;
02. // view가 업데이트 될 때마다 그 때의 뷰 이미지를 Drawing cache에 저장할지 여부를 결정합니다.
03. // m_mainView.getRootView( ) 는 타이틀바 영역까지 캡쳐
04. m_mainView.buildDrawingCache( ) ;
05. // view의 이미지 저장! buildDrawingCashe
06. // setDrawingCache() 로도 이미지를 저장할 수 있지만 뷰의 내용이 바뀔때마다 저장되어
07. // 내용이 자주 변경되는 뷰에서는 성능이 저하 될 수도 있다.
08. Bitmap savebitmap = m_mainView.getDrawingCache( ) ;
09.
10.// Intent intent = new Intent( ud_Painting.this, ud_Pride.class ) ;
11.// intent.putExtra( "CAPTURE", savebitmap ) ;
12. Log.e("------------", savebitmap+"-------") ;
13. // Drawing cache에 저장된 뷰의 이미지를 Bitmap 형태로 반환합니다.
1.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yy-MM-dd-hh-mm-ss");
2.Date today = new Date();
3.String strDate = formatter.format(today);
1.String dirPath = "/sdcard/KidsPuzzle";
2.File file = new File(dirPath);
3.if( !file.exists( ) ) // 원하는 경로에 폴더가 있는지 확인
4. file.mkdirs( ) ;
5.
6.File hFile = new File( "/sdcard/myFolder/"+ strDate +".jpg" ) ;
7.FileOutputStream fos ;
01.try
02.{
03. fos = new FileOutputStream( hFile ) ;
04. savebitmap.compress( CompressFormat.JPEG, 70, fos ) ;
05. fos.close( ) ;
06. Toast.makeText( getApplicationContext( ), " 저장되었습니다 " , Toast.LENGTH_SHORT ).show( ) ;
07.}
08.catch ( FileNotFoundException e )
09.{
10. e.printStackTrace( ) ;
11. Toast.makeText( getApplicationContext( ), " 저장실패 " , Toast.LENGTH_SHORT ).show( ) ;
12.}
13.catch ( IOException e )
14.{
15. e.printStackTrace( ) ;
16. Toast.makeText( getApplicationContext( ), " 저장실패 " , Toast.LENGTH_SHORT ).show( ) ;
17.}

 

728x90
반응형
:
Posted by mapagilove