티스토리 뷰

code at github/KAIST-MadCamp/Week5

18.07.31
앱 개발중, 카메라 사진 촬영 or 앨범 사진 선택 후
onActivityResult()로 intent 결과값을 받아오는 부분에서
카메라 기능이 단말기마다 다르게 작동하는 현상 발생.

내 안드로이드(갤A5 API23)에선 기본 카메라 호출시, 사진 촬영후 앨범에 자동으로 사진을 저장한다.
그런데 개발폰(갤S7 API26)에선 자동으로 사진을 저장하지 않는다. (물론 '앱에서 호출을 통한' 기본 카메라에서)
그래서 내껀 Intent data.getData()로 사진URI를 반환하나, 개발폰은 data.getExtras().get("data")로 Thumbnail 크기의 Bitmap 이미지를 반환한다.

참고자료

https://www.androidpub.com/549004
http://japanescape.tistory.com/14

따라서 후자의 경우, 별도로 찍은 사진을 앨범에 저장하는 코드와 앨범에서 URI로 다시 불러오는 코드의 추가가 필요해짐. 반복작업을 피하기위해 카메라호출의 경우, 이후의 이미지 처리과정을 삭제하고 촬영만 하도록 앱 동작방식을 변경하였다. camera버튼을 통해 사진을 촬영 및 저장하고, gallery버튼을 통해 사진을 선택해 가져와 이후의 이미지 처리과정을 거치는 방식으로.

촬영한 사진 저장기능은 일단 보류. 나중에 다시

디버깅 코드

Intent iCam = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File file = new File(Environment.getExternalStorageDirectory()+"/MyFace/", "MyFace_"+timeStamp+".jpg");
iCam.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));

startActivityForResult(iCam, CAMERA_CODE);
switch (requestCode) {
                case CAMERA_CODE :
                    Log.d("@@@@@@@@@@@@@@@@:: ", String.valueOf(data.getExtras().get("data")));
                    //Bitmap bm = (Bitmap) data.getExtras().get("data");
                    Bitmap bm = (Bitmap) data.getExtras().get(MediaStore.EXTRA_OUTPUT);
                    iv.setImageBitmap(bm);
                    break;
                case GALLERY_CODE :

참고자료

https://www.androidpub.com/837593
http://holmess.tistory.com/11
http://japanescape.tistory.com/14
http://superwony.tistory.com/5

'Android' 카테고리의 다른 글

keystore by keytool.exe  (0) 2019.09.13
AsynchTask, Thread를 통한 네트워크 연결  (0) 2019.09.11
Image의 URI / URI Path / URI realPath 차이  (0) 2019.09.11
Android Studio) device 연결  (0) 2019.09.11
Android Studio내 Rendering Issue  (0) 2019.09.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함