마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

drawing cache를 이용한 스크린샷 저장과 갤러리문제 [closed]

0 추천

아래코드를참고해서만들었습니다.

@Override
public void onClick(View v) {
    container.buildDrawingCache();
    Bitmap captureView = container.getDrawingCache();
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(Environment.getExternalStorageDirectory().toString()+"/capture.jpeg");
        captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    Toast.makeText(getApplicationContext(), "Captured!", Toast.LENGTH_LONG).show();
}

스크린샷을 찍고 저장이 됩니다. 그런데 갤러리에서 저장된 스크린샷이 보이지않습니다.

핸드폰을 껐다 켜야 갤러리에 보입니다..

저는 스크린샷 저장과 동시에 갤러리에 보이게 하고 싶습니다 8ㅅ8

무슨 문제인지, 어떻게 해결할 수 있는지 알고싶습니다 도와주세요 ;ㅅ;

질문을 종료한 이유: 해결
KimReeng (140 포인트) 님이 2014년 9월 26일 질문
KimReeng님이 2014년 9월 28일 closed

1개의 답변

0 추천
미디어스캔을 돌리세요.
익명사용자 님이 2014년 9월 26일 답변
안녕하세요. 말씀하신대로 미디어스캔을 찾아서 돌려봤습니다.
그런데 안되네요 8ㅅ8 제가 잘못한건지 봐주시겠어요? ㅠㅠ

public void onClick(View v) {
                container.buildDrawingCache();
                Bitmap captureView = container.getDrawingCache();
                FileOutputStream fos;
                try {         
                    fos = new FileOutputStream("sdcard/sticky/image_" + System.currentTimeMillis() + ".jpeg");
                    final int DIR_FORMAT = 0x3001; // directory
                    Uri MediaUri = MediaStore.Files.getContentUri("external");
                    
                    ContentValues values = new ContentValues();
                    values.put(MediaStore.MediaColumns.DATA, Environment.getExternalStorageDirectory() +"/sticky");
                    values.put("format" , DIR_FORMAT);  // 
                    values.put(MediaStore.MediaColumns.DATE_MODIFIED, System.currentTimeMillis() / 1000);
                    mContext.getContentResolver().insert(MediaUri, values);

                    captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }   
               
                Toast.makeText(getApplicationContext(), "Captured!", Toast.LENGTH_LONG).show();
            }
...