본문 바로가기
Project/Project

[졸업작품 프로젝트] 갤러리의 모든 사진 중 음식 이미지만 보여주기

by 겸 2021. 11. 13.

갤러리 뷰로 음식사진만 보여주기

1. 각 이미지가 음식인지 아닌지 구분하기 위해 PhotoData라는 클래스를 만들어 uri, isFood변수 생성

 

2. PhotoData Array를 어댑터에 적용

 

3. 갤러리의 이미지를 불러올 시 모든 사진에 대해 음식여부 확인 후 갤러리뷰에 띄워준다.

 

[결과물]

[생각할 것] 지도에 띄우기 위해서는 미리 모든 이미지를 전부 판별해야할것이다. 하지만 속도가 너무 느리다.

모든 이미지를 판별하는 시간이 오래걸리는데 이를 따로 저장할 방법이 없을까?

 

지도에 음식사진만 보여주기

1. 팀원이 작업한 네이버 지도 코드와 나의 음식 이미지 불러오는 코드를 합치는 작업을 했다. 

 

2. 팀원과의 안드로이드 스튜디오 버전이 달라서 내가 업데이트 했다.

 

3. 네이버 지도를 보여주기 위해 네이버 Maps API 등록했는데 현재위치, 네이버로고, 확대/축소 버튼만 뜨고 지도 화면이 안떴다. 구글링 해도 해결이 안됐음.. 그러다가 에뮬레이터를 껐다 켜니까 해결되었다. 

 

4. 에뮬레이터의 스킨이사라져 스킨을 재설정 하려고 했더니 설정 버튼이 아예 비활성화 되어있어 에뮬레이터를 새로 만들었다. 하지만.. 새로운 에뮬레이터를 사용하니 갑자기 갤러리 이미지 보기기 안됐다.

로그를 확인하니 open failed: EACCES (Permission denied)가 있었고 안드로이드 버전을 올린 결과 발생한 문제였다.

menifest파일에 아래의 코드를 추가해주니 해결됐다.

Android Q버전부터 External Storage에 대해서는 scoped accesss into external storage(=scoped storage)라 하여.. 제한된 권한만 주려고 해서 발생한 문제였다.

 

5. 지도 출력 시 에러 발생. 분명 갤러리에서 이미지는 불러왔는데 마크가 안뜬다.

문제 해결을 위해 로그를 찍어 순차적으로 어디서 문제가 생기는지 확인해보았다.

그 결과, 이미지는 잘 불러오는데 이미지의 위도, 경도 값을 못 얻어오는 문제가 원인이었다.

gradle에 implementation "androidx.exifinterface:exifinterface:1.3.3" 을 추가했더니 해결되었다. 

 

6. 테스트

기존에 음식으로 인식되는 사진에 GPS정보를 삽입하여 테스트했다. 

 

[결과물]

[생각할 것] 현재 코드가 매우 복잡하다 ㅠㅠ 이걸 하면서 아키텍쳐라는 걸 왜 배우는지 깨달았다!!

안드로이드 권장 아키텍처를 공부하고 코드를 정리해야겠다. 

반응형