4일째입니다.ㅠ
검색 능력이 부족한지, 백날 검색해서 찾은 것들이 다들 헛수고입니다.
지금 제 프로그램은,
버튼을 누르면 SurfaceView가 있는 액티비티를 호출하고, 거기서 카메라로 사진을 촬영합니다.
촬영한 사진은 FileOutputStream을 통해 외부저장소에 저장됩니다.
/mnt/sdcard/bestclinic.jpg
쌓으려는 데이터가 아니라서 파일명은 고정입니다.
잘 저장 됩니다.
이걸 인텐트에 넣어서 ActivityResut로 보냅니다.
intent.setData(Uri.fromFile(file));
위에 쓰인 file은 File file = new File("/mnt/sdcard/bestclinic.jpg"); 입니다. (편의상; 사실은 sdcard디렉터리의 절대경로를 얻어옵니다.)
되돌아온 액티비티에서도 파일 경로는 제대로 받습니다.
근데 여기서 문제입니다.
기존의 ImageButton에 setImage를 하려는데 자꾸 들어가질 않습니다.
코드는 onActivityResult에 있구요.
해본 방법은,
button.setImageURI(data.getData());
안됩니다;
FileInputStream을 이용한 BitmapFactory.decodeStream(inputStream, null, null);
이건 setImageBitmap()에서 에러가 납니다.
BitmapFactory.decodeFile(uri.getPath());
역시 setImageBitmap()에서 에러가 납니다.
카메라 액티비티에서 uri를 넘겨주는데, 저렇게 file이나 string으로 만든 uri로도 제대로 작동 하는지 모르겠습니다.
그리고 BitmapFactory를 이용해 비트맵을 얻으면 변수에 비트맵이 들어가긴 합니다만
mHeight와 mWidth 가 -1입니다. 이건 제대로 얻어온게 아닌거죠?
도저히 문제를 알 수 없습니다 ㅠ
카메라 액티비티에서 비트맵을 가져오려고 했더니 용량초과로 액티비티 전환 자체가 안되더라구요 ㅠ




URI를 사용하시려고 하는데 파일 절대경로로 받으셔서 발생한 문제 아닌가요?
Uri.fromFile() 메소드를 사용해서 uri로 받으시면 해결될것 같습니다.