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

fragment 소스 에러 좀 봐주세요

0 추천

프래그먼트에서 현재의 화면전체를 캡쳐하고 싶습니다.

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                    Uri.parse("file://"+Environment.getExternalStorageDirectory())));

인터넷에서 찾은 소스를 입히는 중인데.. 위에서 빨간글씨가 뜹니다.

sendBroadcast.   이게 빨간색으로 뜨는데요...

fragment 에서 어떻게 고쳐야 되는지요????

이것때문에 캡쳐 이미지가 완전 다 깨지는데.....이것 때문인지 아닌지 모르겠네여..

public void screenshot(View view) throws Exception{
        view.setDrawingCacheEnabled(true);
        Bitmap scrreenshot = view.getDrawingCache();
        try{
            String path = Environment.getExternalStorageDirectory().getAbsolutePath();
            File dir = new File(path, "NOTICE2");
            if(!dir.isDirectory()) {
                dir.mkdir();
            }
            Toast.makeText(getActivity(),"디렉토리 생성~~~", Toast.LENGTH_SHORT).show();
            SimpleDateFormat formater = new SimpleDateFormat("yyyy_MM_dd.HH.mm.ss");  // 파일명 변경
            Date current = new Date();
            String mtime = formater.format(current);
            String filename = "Capture"+mtime+".png";

            File file = new File(dir, filename);
            file.createNewFile();
            OutputStream outStream = new FileOutputStream(file);
            scrreenshot.compress(Bitmap.CompressFormat.PNG, 100, outStream);
            outStream.close();

            sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                    Uri.parse("file://"+Environment.getExternalStorageDirectory())));
        }catch(IOException e){
            e.printStackTrace();
        }
        view.setDrawingCacheEnabled(false);
    }

 

앤드류이드 (6,190 포인트) 님이 2016년 8월 4일 질문

1개의 답변

0 추천
 
채택된 답변
sendBroadcast의 경우 Context에 있는 API이나 fragment는 Activity와 달리 Context를 상속받아 구현된게 아니라 메소드를 못 찾는 겁니다.

아래와 같이 고쳐 보세요.

if(getActivity() != null) {

   getActivity().sendBroadcast(...);

}

단지, 화면이 깨진 이윤 다른 이슈일 겁니다.
익명사용자 님이 2016년 8월 4일 답변
앤드류이드님이 2016년 8월 4일 채택됨
감사합니다.. 시도해보겠습니다.^^
...