드디어 마지막 미션입니다.

프로젝트에는 아직 하나가 더 있지만 부스트코스 에이스에서 진행하는 미션은 여기까지입니다.

 

나머지 하나는 나중에 혼자서 해야겠네요.

 

요구사항입니다.

 

간단히 요약하면 가로 리사이클러뷰 안에 사진과 동영상을 넣으면 됩니다. 이런 식으로요.

 

여기서 주의할 점은

초창기에 배웠던 리스트뷰가 아니라 리사이클러뷰를 사용하다는 점,

갤러리에 있는 사진을 눌렀을 때 사진이 있는 화면이 뜨고 확대, 축소가 가능해야 한다는 점,

갤러리에 있는 동영상을 눌렀을 때 유튜브로 연결되어 재생된다는 점입니다.

 

 

1) 갤러리 추가

 

원래 있던 상세화면에 리사이클러뷰를 중간에 넣어 구성했습니다.

 

리사이클러뷰는 레이아웃 매니저를 set하여 모양을 만들게 되는데

 

평범한 세로 스크롤을 사용하면 아무런 설정도 하지 않은 LinearLayoutManager을,

가로 스크롤을 사용하기 위해서는 LinearLayout.HORIZONTAL 을 설정해야 합니다.

 

이외에도 그리드나 불규칙 매니저를 사용하기도 한다네요.

 

 

이후 서버에서 전달되는 사진과 동영상 정보를 이용하여, 아이템과 어뎁터 클래스 등을 만듭니다.

댓글 목록을 만들 때와 다르지 않습니다. 거의 유사하고 아이템의 변수가 다를 뿐입니다.

 

그렇기 때문에 어려운 점은 없었습니다. 굳이 어려운 게 있었다면 아이템 간의 간격 문제였습니다.

 

데코레이션 클래스를 만들어서 설정할 수도 있었으나, 저는 만들기만 하고 사용하지 않았습니다.

 

 

 

2) 사진을 눌렀을 때 사진 화면으로 전환

 

화면 전환은 간단합니다. 액티비티 간의 이동이기 때문에 사진을 보는 xml과 java를 만들어 거기로 연결하면 되는 거죠.

단, 리사이클러뷰의 아이템을 터치하는 것이기 때문에 각 아이템을 눌렀을 때 그에 알맞은 화면으로 전환되도록 해야합니다.

 

이를 위해 어뎁터에 클릭 메소드를 만들어서 사용했습니다.

 

또한 사진 화면에서는 사진 확대와 축소를 해야하기 때문에 외부 주소에서 관련 라이브러리를 빌려왔습니다.

 

 

 

3) 갤러리에서 동영상을 눌렀을 때 동영상 재생

 

동영상 재생은 앱에서 진행하지 않고 관련 링크로 전환되도록 하였습니다.

이건 인텐트를 조금 다르게 하는 것으로 바로 이동시키더군요.

 

new Intent(Intent.ACTION_VIEW, Uri.parse(주소));

 

이런 식으로요.

 

 

 

이렇게 요구사항을 전부 완수하고 이전 프로젝트에서 리뷰받은 걸 토대로 새로 정리한 후 제출했습니다.

 

결과는 어떻게 됐을까요??

PASS입니다~

 

제가 이걸 하면서 느낀 게 어떤 상황에 대해서 응용하거나 어떤 방식으로 동작하도록 만들지에 대한

아이디어나 방법 같은 건 어렵지 않은데,

 

xml과 같은 걸 다루는 게 오히려 낯설 게 느껴지더군요.

 

코드 리뷰를 보고 부족한 점을 공부해야겠습니다.

 

 

 

이번이 마지막 프로젝트였는데요, 다음에는 기업 연계 프로젝트에 대한 걸 공유하도록 하겠습니다.

 

감사합니다.

+ Recent posts