본문 바로가기
[ Developer ]/Android

[Android] 안드로이드 DrawbleLayout 네비게이션 메뉴

by 김현섭. 2016. 7. 20.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android 네비게이션 아이콘 생성 및 이벤트 주기

@ 아이콘 추가

위의 사이트에 접속하면 지원하는 디자인들을 볼 수 있다


밑으로 내려보면 Resources가 있고 그 중 Meterial icon collection을 통해서 지원하는 아이콘을 사용할 수 있다

내려보면 아이콘이 있고 사용할 아이콘을 누르면 다운 받을 수 있다


흰색이나 검정색으로 테마를 정하고 PNGS로 다운받을 수 있다
그리고 나서 압축을 푼 후 app 폴더 안에 res 폴더에 붙여넣기를 하면 알아서 들어가게 된다


파일이 여러개인 이유는 보여지는 폰의 해상도에 따라서 적당한 파일을 열어주기 때문이다

이제 res -> menu -> activity_main_drawer.xml을 열면 
아이콘들을 볼 수 있다


위의 group에 item을 추가해줄 수 있다


위와 같이 추가를 해주고 나서 앱을 실행시켜 보자


네비게이션 메뉴에 지하철 모양의 아이콘이 추가된 것을 볼 수 있다


@ 아이콘 이벤트 주기
이제는 아이콘을 클릭할 시 다른 Fragment를 열게 끔 해본다
그러기 위해서 layout에서 app_bar_main을 열어본다


중간에 있는 include를 통해서 content_main.xml을 추가했다


content_main.xml에 id를 줘서 app_bar_main에서 id로써 찾을 수 있게 한다
그러기 위해서 content_main에서 TextView를 지우고 id를 준다


이제 메뉴를 클릭할 때 이벤트를 발생이 되는 곳에 이벤트를 지정해준다


위의 구문은 implements로 구현을 통해서 사용하는 방식이다


그러나 위와 같이 사용한다는 걸 알리기 위해서 implements를 복사한다


위와 같이 주석을 달아주면 저 메소드가 see의 구현체구나를 알 수 있게 된다
조금 가독성을 높이는 방법이다

로직을 보면 Item.getItemId()를 통해서 선택한 아이템을 가져오고 R.id로 비교를 하게 되는 것이다


이제 카메라를 선택했을 때 카메라 선택이라는 Toast를 띄어본다
실행 결과를 보면 다음과 같다


결과를 보면 동작을 잘 한다는 것을 볼 수 있다
이제는 Fragment를 생성해서 띄우는 것을 해본다

@ Fragment 띄우기


위와 같이 Fragment를 추가해준다
camera와 gallery 2개를 생성한 후 메인에서 추가를 해준다


추가를 해주고 첫 화면을 띄우기 위해서 FragementTransaction을 해준다


위와 같이 추가를 해주면 기본 화면 설정이 된다

그리고 나서 밑에 네비게이션 이벤트를 주는 곳에서 설정을 해주면 된다


이제 각각의 뷰에 선택된 제목을 보여주기 위해서 GalleryFragment에서 onCreateView에서 Title을 설정해준다


그리고 나서 layout에서 fragment_camera.xml를 조금 수정한다


그냥 Text를 카메라로 변경을 해주는 것이다

결과를 보면 바뀐 것을 볼 수 있다