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

ics 부터 FrameLayout 캡쳐 방법이 달라졌나요?

0 추천

프레임레이아웃을 캡쳐하기 위해 이렇게 선언해주었구요

private FrameLayout container;

 

container = (FrameLayout)findViewById(R.id.main_container);

 

화면 캡쳐 버튼 기능을 구성했습니다.

container.buildDrawingCache();

   Bitmap captureView = container.getDrawingCache();

   FileOutputStream fos;

   

   Intent it3=getIntent(); 

   String str_name=it3.getStringExtra("it3_name");  

   

   File fileRoute = null;

   fileRoute = Environment.getExternalStorageDirectory();

 

   try {

  

    File path = new File(fileRoute+"/play");

    if(!path.isDirectory()){

     path.mkdirs();

    }

    

    fos = new FileOutputStream(fileRoute+"/play/-"+str_name+"-.jpeg");

    captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos); //843번째 줄

   }catch (FileNotFoundException e) {

    

    e.printStackTrace();

    

   }  

    Toast.makeText(getApplicationContext(), "/sdcard/FaceOn으로 저장되었습니다.", Toast.LENGTH_LONG).show();

 

위에 소스가 현재 2.2 프로요 기종(모토로라디파이)에서는 잘됩니다.

그런데 ics 기기에서 (옵티머스 Ex) 테스트를 해봣는데 캡쳐버튼을 누르면 죽습니다.

로그캣을 봤는데  843번째 줄이 굵은 부분입니다.

저는 OS에 따른 외장메모리경로때문에죽는건 줄 알았는데 저기서 에러나면 경로랑은 상관없는거아닌가요?

 

 

비트맵 값이 널값이 납니다. 젤리빈에서만 그러는거 같은데 무슨현상인지 해결법도 잘 모르겠습니다.

2.2 프로요에서는 잘되구요. 뭔가 방법이 바껴서 안되는거 같습니다.

이 문제를 어떻게 해결해야 하나요? 

 

06-16 16:48:48.390: E/AndroidRuntime(25620): FATAL EXCEPTION: main

06-16 16:48:48.390: E/AndroidRuntime(25620): java.lang.NullPointerException

06-16 16:48:48.390: E/AndroidRuntime(25620):  at com.example.faceon.ResultActivity.onClick(ResultActivity.java:843)

 

브루스웨인 (8,580 포인트) 님이 2013년 6월 20일 질문

2개의 답변

0 추천
 
채택된 답변
container.setDrawingCacheEnabled(true)

container.getDrawingCache() 부르기전에 위에 함수 먼저 호출하고 해보세요

http://stackoverflow.com/a/4618030

bangbang (8,820 포인트) 님이 2013년 6월 21일 답변
브루스웨인님이 2013년 6월 22일 채택됨
아 그 방법도 해봤는데 해결이 안되더군요..

그래도 다시 한번 해봐야겠습니다.  감사합니다.
0 추천
오늘 해본건데

ICS 젤리빈 둘다 이상없이 동작합니다 .. 물론 해당소스말고요

제가 오늘 캡쳐가필요해서 해봐거든요.... 다른부분에 문제일것같습니다
건방진프로그래머 (26,630 포인트) 님이 2013년 6월 21일 답변
아 넵 감사합니다. 대체 어디 부분이 잘못인지..ㅜㅜ 의심해볼만한 부분이 있을까요?
...