sitelink1 https://blog.naver.com/chunsj78/220414998376 
sitelink2  
sitelink3  

androidmainfest.xml에 권한 추가

 

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

 

 

 

 

 

//클릭이벤트에서 캡처 실행

 

@Override

public void onClick(View arg0) {

    Bitmap screenshot    = CaptureUtil.captureScreen(findViewById(android.R.id.content), getApplicationContext());

    if(screenshot != null){

        try {

            CaptureUtil.saveImage(screenshot);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

 

 

 

 

 

//캡쳐 원문

package co.kr.kookai.util;

 

import android.content.Context;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.net.Uri;

import android.os.Environment;

import android.util.Log;

import android.view.View;

import android.widget.Toast;

 

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Calendar;

 

/**

 * Created by kookai on 2015-07-07.

 */

public class CaptureUtil {

    static final String PICFOLDER = "DCIM/kookai"

save_context    =   _context;

        Bitmap screenshot = null;

        try {

 

            if(v!=null) {

 

                screenshot = Bitmap.createBitmap(v.getMeasuredWidth(),v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

                Canvas canvas = new Canvas(screenshot);

                v.draw(canvas);

            }

 

        }catch (Exception e){

            Log.d("ScreenShotActivity", "Failed to capture screenshot because:" + e.getMessage());

        }

 

        return screenshot;

    }

 

    public static void saveImage(Bitmap bitmap) throws IOException {

        mRootPath   =   Environment.getExternalStorageDirectory() + File.separator + PICFOLDER;

 

        File fRoot = new File(mRootPath);

        if(fRoot.exists() == false) {

            if(fRoot.mkdir() == false) {

                Toast.makeText(save_context, "사진을 저장할 폴더가 없습니다.", Toast.LENGTH_SHORT).show();

                return;

            }

        }

 

        Calendar calendar = Calendar.getInstance();

        String FileName = String.format("DG%04d%02d%02d-%02d%02d%02d.jpg",

                calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1,

                calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.HOUR_OF_DAY),

                calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND));

 

        ByteArrayOutputStream bytes = new ByteArrayOutputStream();

        bitmap.compress(Bitmap.CompressFormat.PNG, 40, bytes);

        //File f = new File(Environment.getExternalStorageDirectory() + File.separator + PICFOLDER+"test.png");

 

        String file_path    =   mRootPath + File.separator +FileName;

 

        File f = new File(file_path);

        f.createNewFile();

        FileOutputStream fo = new FileOutputStream(f);

        fo.write(bytes.toByteArray());

        fo.flush();

        fo.close();

 

        //파일을 갤러리에 저장

        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

        Uri uri = Uri.parse("file://" + file_path);

        intent.setData(uri);

        save_context.sendBroadcast(intent);

 

        Toast.makeText(save_context, "SAVE OK ", Toast.LENGTH_SHORT).show();

 

    }

}

번호 제목 글쓴이 날짜 조회 수
48 [안드로이드 웹뷰] 파일 시스템으로 부터 HTML 로딩 황제낙엽 2018.08.21 87
47 내부 저장소 접근 함수 API 와 실제 저장소 경로 황제낙엽 2018.08.21 85
46 뷰 캡처하여 이미지 파일로 저장하기(화면 캡처)-06 file 황제낙엽 2018.08.19 991
45 안드로이드 파일 객체 생성자 황제낙엽 2018.08.19 90
44 파일 입출력(내장 메모리, 외장메모리) 황제낙엽 2018.08.19 720
» 뷰 캡처하여 이미지 파일로 저장하기(화면 캡처)-05 황제낙엽 2018.08.19 132
42 뷰 캡처하여 이미지 파일로 저장하기(화면 캡처)-04 file 황제낙엽 2018.08.12 1711
41 뷰 캡처하여 이미지 파일로 저장하기(SD카드로 화면 캡처)-03 file 황제낙엽 2018.08.12 150
40 뷰 캡처하여 이미지 파일로 저장하기(화면 캡처)-02 황제낙엽 2018.08.12 133
39 뷰 캡처하여 이미지 파일로 저장하기(화면 캡처)-01 황제낙엽 2018.08.12 86
38 뷰 캡처하여 이미지 파일로 저장하기(화면 캡처)-00 황제낙엽 2018.08.12 109
37 [HttpURLConnection] 서버와 세션 유지 황제낙엽 2018.08.12 58
36 [HttpURLConnection] 세션 관리 황제낙엽 2018.08.12 27
35 이미지 크기 변경(Image resize) file 황제낙엽 2018.08.09 108
34 Emulator: audio: Failed to create voice `adc' 황제낙엽 2018.08.06 1007
33 install_failed_invalid_apk file 황제낙엽 2018.08.06 49
32 Image to byte Array (바로 사용가능한 JPEG 파일) 황제낙엽 2018.07.24 612
31 안드로이드 스튜디오(Android Studio) 최적화 file 황제낙엽 2018.02.07 433
30 Android Studio for beginners, Part 4: Advanced tools and plugins (2) file 황제낙엽 2018.02.02 14
29 Android Studio for beginners, Part 4: Advanced tools and plugins (1) file 황제낙엽 2018.02.02 26