티스토리 뷰

프로그램/안드로이드 강좌

메뉴기초

서.라.연 2012. 8. 15. 13:01


이 자료들은 팁스소프트에서 제공하는 [ 알짜배기 ] 프로그램을 이용하면 더 편리하게 볼수 있습니다.
* 알짜배기 프로그램 받기 - http://www.tipssoft.com/bulletin/tb.php/QnA/8406
* 안드로이드 강좌 목록 - http://www.tipssoft.com/bulletin/tb.php/old_bbs/501
종종 어플리케이션을 사용하다보면 주 기능이 아닌 부가 기능이 필요할 때가 있습니다. 예를 들어
인터넷 어플리케이션을 사용할 때 어플리케이션의 홈페이지를 특정 페이지로 지정하거나 자주 방문하는
페이지를 북마크로 등록하는 작업을 하려면 기본 사용자 작업 환경에서는 불가능하기 때문에 별도로
메뉴를 사용하여 해당 기능을 수행시켜야 합니다.
이렇게 자주 사용되지 않는 기능들을은 메뉴로 등록하여 특별한 사용자 조작을 통해 사용하곤 합니다.
이번 강좌에서는 메뉴를 사용할 때 기본적으로 알아 두어야 할 사항에 대하여 알아보도록 하겠습니다.

1. 메뉴의 종류

기본적으로 안드로이드에서 제공하는 메뉴는 크게 3 가지로 분류됩니다. 세가지의 메뉴는 실행될때
출력되는 화면도 다르지만 사용되는 용도도 조금씩 다릅니다. 이제부터 각 메뉴의 특징과 실행되는
형태를 알아보도록 하겠습니다.
1.1 Context Menu
Context Menu 는 특정 뷰가 수행할 작업을 목록화한 것입니다. 이 메뉴는 액티비티가 아닌 뷰가
수행할 수 있는 작업을 목록화한 것이므로 해당 뷰에 명시적인 사용자 조작을 가해주어서 메뉴를
띄울 수 있습니다. 기본적으로 사용자가 뷰 화면을 2~3초간 길게 터치하였을 때 나타나며 화면에
떠있는 리스트의 형태로 출력됩니다.
보통 아래의 그림과 같은 리스트뷰를 기반으로하는 어플리케이션에서 항목별 작업을 수행하기
위해 많이 사용되며 지도를 기반으로하는 어플리케이션에서도 많이 사용됩니다. Context Menu 에
대하여 자세하게 알고싶으신 분은 아래의 링크를 참고해주시기 바랍니다.
메뉴( Menu ) - Context Menu : http://www.tipssoft.com/bulletin/tb.php/FAQ/982

1.2 Options Menu
Options Menu 는 특정 액티비티가 수행할 작업을 목록화한 것입니다. Options Menu 는
안드로이드용 기기에서 Menu 버튼을 클릭하거나 터치하여 나타낼 수 있으며 어플리케이션의
하단에 좌측 그림과 같은 형태로 출력됩니다. 각 항목에 적용된 이미지는 메뉴를 구성할 때
설정한 아이콘 이미지이며 기본적인 방법으로는 3 가지 메뉴 중에서 유일하게 아이콘을 사용할
수 있습니다.
이 메뉴는 한번에 출력할 수 있는 항목 수 6 개로 제한이 있기때문에 사용할 항목 수가 6 개를
초과하는 경우에는 아래의 좌측 그림처럼 5 개의 항목과 6 번째에 "더보기" 가 추가로 출력됩니다.
"더보기" 항목을 터치하면 우측의 그림처럼 나머지 항목들이 리스트에 모두 출력됩니다. Options
Menu 에 대하여 자세하게 알고싶으신 분은 아래의 링크를 참고해주시기 바랍니다.
메뉴( Menu ) - Options Menu : http://www.tipssoft.com/bulletin/tb.php/FAQ/984
1.3 Sub Menu
Sub Menu 는 Context Menu 나 Options Menu 의 하위 메뉴로 구성된 것입니다. 일반 메뉴에서
항목을 선택했을 때 해당 항목으로 어떤 작업을 수행하는 것이 아니라 또 다른 메뉴를 보여주어야
할 때 사용합니다.
Sub Menu 는 아래의 좌측 그림에서 메뉴의 항목을 터치하면 우측의 그림처럼 화면에 떠있는
리스트 형태로 출력됩니다. 서브 메뉴는 Context Menu 나 Options Menu 에서 모두 사용할 수
있지만 자기 자신이 또 다른 서브 메뉴를 사용할 수는 없습니다. Sub Menu 에 대하여 자세하게
알고싶으신 분은 아래의 링크를 참고해주시기 바랍니다.
2. XML 로 메뉴 구성하기
메뉴는 액티비티의 화면을 구성하는 것처럼 트리 구조를 가진 XML 로 구성할 수 있습니다. 메뉴를
XML 로 구성하기 위해서는 res 폴더에 menu 폴더를 생성하여 생성된 폴더 내부에 XML 파일을
추가적으로 생성해야 합니다.
XML 로 간단하게 메뉴를 구성하는 코드를 살펴보도록 하겠습니다.
<!-- project/res/menu/sample_menu.xml -->
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/id_one"
android:icon="@drawable/icon_one"
android:title="Tipsware"
/>
<item
android:id="@+id/id_two"
android:icon="@drawable/icon_two"
android:title="Tipssoft"
/>
</menu>
위의 코드처럼 XML 에서 메뉴를 구성하기 위해서는 <menu> 요소가 루트가 되어야하고, 내부에
다른 요소들이 전개되어야 합니다. 메뉴를 구성할 때 사용되는 주요 키워드는 아래와 같습니다.
- <menu>
메뉴를 정의하는 요소입니다. 메뉴를 구성하는 항목들의 틀이되는 역할을 하므로 반드시 최상위
루트에는 <menu> 가 정의되어있어야 합니다. 이 요소 하위에는 <item> 과 <group> 이 올 수
있으며 Sub Menu 를 구성할 때에도 이 요소를 사용합니다.
- <item>
메뉴의 한 항목을 정의하는 요소입니다. 해당 항목이 어떤 명칭을 가지는지, 어떤 아이콘을
사용하는지 속성으로 정의할 수 있으며 해당 항목이 Sub Menu 를 포함하는 경우 또 다른
<menu> 요소를 <item> 의 내부에 정의하여 하위 메뉴를 구성하도록 할 수 있습니다.
다음은 <item> 요소가 사용하는 속성들입니다.

* id : 사용자가 메뉴의 항목을 선택했을 때 어떤 항목을 선택했는지 식별하기 위해서 사용하는
ID 입니다. 기존의 다른 컨트롤을 정의했을 때와 동일한 방식으로 명시하시면 됩니다.
* icon : 기본적으로 Options Menu 의 항목만 유효하게 사용할 수 있으며 res 폴더 내
drawable 폴더에 존재하는 이미지 파일명을 "@drawable/파일명" 형식으로 명시합니다.
drawable 폴더 내에 존재하는 파일명은 반드시 소문자여야하며, 이 속성에서 파일명을
사용할 때에는 반드시 확장자를 생략하여 명시해주어야 합니다.
* title : 메뉴의 항목에 출력되는 문자열을 명시합니다. string 리소스를 사용해도되고,
직접 문자열을 구성해도 됩니다.

 

댓글