2010년 2월 2일 화요일

안드로이드 프로그래밍 - Menu구현의 이해(1)

뉴를 구현하기 위해 알아야할 것들을 간단하게 정리하겠습니다.

안드로이드에서는 메뉴의 역할이나 배치가 사용자에게 상당한 편의를 제공해 줄수있기 때문에 이를 이해하고 적절한 구성으로 프로그램의 품질을 높이는게 조그만 스마트폰안에서의 생존율을 높이는 방법일겁니다. ^^

스마트폰의 특성상 일반PC의 프로그램 메뉴와는 몇가지 다른면이 있습니다. 우선은 마우스가 없기 때문에 세밀한 포인팅이나 좌/우클릭의 현란한 손동작을 받아들이지 못합니다. 해서 단순하게 손꾸락 하나로 모든걸 할 수 있게끔 구현하고 있죠.

그리고 메뉴의 크기가 상대적으로 큼지막하게 배치되어 있어, 저같이 손떨림이 심한 사람도 손가락 포인팅의 기쁨을 누릴 수 있습니다. 또한  메뉴 단계가 그리 복잡하지 않습니다.

안드로이드 메뉴 구현에서 알아야 할것은 메뉴의 종류와 callback method, 구현 방법에 있어서 Class와 XML 두가지가 가능하다는 겁니다.

안드로이드는 3가지 종류의 메뉴를 제공합니다.
* Options Menu
* Context Menu
* Submenu

Options Menu
모바일기기의 "MENU"버튼을 누르면 보여지는 메뉴로 제일 많은 활용도를 가지고 있고, 메인메뉴라 생각하면 좋을거 같습니다. Icon Menu와 Expanded Menu로 구성됩니다.

Options Menu에도 작은 특징이 있는데 화면에 보여지는 메뉴의 수는 최대 6개로 제한되어 있고, 6개가 넘게되면 확장메뉴로 넘어가게 되어 있습니다. Options Menu는 작은 이미지같은 icon을 지원하지만 메뉴가 6개가 넘어 확장으로 넘어간 메뉴들은 icon을 지원하지 않습니다. (이유는 저도 모릅니다. 심심하시면 소스까보세요.^^)

위와 같은 특징 때문에 Options Menu에는 크게 이미지를 지원하는 Icon Menu라는게 있고 더 많은 메뉴를 지원하기 위해 Expanded Menu로 구성된다고 보시면되고, 또 Options Menu는 체크박스나 라디오버튼 같은 위젯은 지원하지 않습니다.

[Icon Menu와 More를 눌렀을때 Expanded Menu]

Context Menu
일반PC에서 마우스 오른쪽버튼을 클릭하면 조그만 팝업창이 열리면서 어떤 설정이나 다양한 기능을 구현해 놓은 메뉴가 있습니다. Context Menu가 바로 그런 기능을 하는데 안드로이드에서는 마우스 클릭질을 못하기 때문에 손꾸락으로 화면을 꾸욱~하고 몇초간 누르고 있으면 마우스 오른쪽 버튼으로 속성창을 여는것과 같은 메뉴를 띄울 수 있습니다.

가장 많이 쓰이는 곳은 아마 주소록처럼 목록이 쭉 나열된 프로그램에서 개별 항목을 선택하고 수정이나 삭제를 원할때 그중에 하나를 쿡~ 찍어서 눌러주는 모습을 떠올리면 되겠습니다.

Submenu
submenu는 머 궂이 설명이 필요할까 싶긴하네요. 한가지 특징은 하위 메뉴는 1단계까지만 구현됩니다. 그러니까 submenu밑에 또 submenu를 달 수 없습니다.

안드로이드 프로그래밍 - Menu구현의 이해(2)
안드로이드 프로그래밍 - Menu구현의 이해(3)

댓글 없음:

댓글 쓰기