1page.title=UI 개요 2@jd:body 3 4 5<p>Android 앱의 모든 사용자 인터페이스 요소는 {@link android.view.View}와 6{@link android.view.ViewGroup} 개체를 사용하여 구축합니다. {@link android.view.View}는 사용자가 상호 작용할 수 있는 무언가를 7화면에 그리는 객체입니다. {@link android.view.ViewGroup}은 8인터페이스 레이아웃을 정의하기 위해 다른 {@link android.view.View}(및{@link android.view.ViewGroup}) 객체를 9보유하는 객체입니다.</p> 10 11<p>Android는 공통 입력 제어(버튼 및 텍스트 필드)와 다양한 레이아웃 모델(선형 또는 관계 레이아웃)을 제공하는 {@link android.view.View}와 {@link 12android.view.ViewGroup} 하위 클래스의 13컬렉션을 제공합니다.</p> 14 15 16<h2 id="Layout">사용자 인터페이스 레이아웃</h2> 17 18<p>앱의 각 구성 요소에 대한 사용자 인터페이스는 그림 1에서 나타난 바와 같이 {@link 19android.view.View}와 {@link android.view.ViewGroup} 객체의 계층으로 정의됩니다. 각 보기 그룹은 20하위 보기를 체계화하는 투명한 컨테이너이고, 21하위 보기는 UI의 일부분을 그리는 제어나 다른 위젯일 수 있습니다. 22이 계층 트리는 개발자에게 필요한 만큼 단순하거나 복잡하게 23만들 수 있습니다(다만 단순한 것이 성능에는 가장 좋습니다).</p> 24 25<img src="{@docRoot}images/viewgroup.png" alt="" /> 26<p class="img-caption"><strong>그림 1.</strong> 보기 계층을 나타낸 것으로, 이것이 27UI 레이아웃을 정의합니다.</p> 28 29<p>레이아웃을 선언하려면 코드의 {@link android.view.View} 객체를 인스턴트화하고 트리를 구축하기 시작하면 되지만, 30레이아웃을 정의하는 가장 쉽고 효과적인 방법은 XML 파일을 사용하는 것입니다. 31XML은 HTML과 유사한, 인간이 읽을 수 있는 레이아웃 구조를 제공합니다.</p> 32 33<p>보기의 XML 요소 이름은 해당 요소가 나타내는 각각의 Android 클래스를 따릅니다. 말하자면 34<code><TextView></code> 요소가 UI에서 {@link android.widget.TextView} 위젯을 생성하고, 35<code><LinearLayout></code> 요소는 {@link android.widget.LinearLayout} 보기 36그룹을 생성하는 것입니다. </p> 37 38<p>예를 들어, 텍스트 보기와 버튼 하나가 있는 단순한 수직 레이아웃은 이런 모습을 띱니다.</p> 39<pre> 40<?xml version="1.0" encoding="utf-8"?> 41<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 42 android:layout_width="fill_parent" 43 android:layout_height="fill_parent" 44 android:orientation="vertical" > 45 <TextView android:id="@+id/text" 46 android:layout_width="wrap_content" 47 android:layout_height="wrap_content" 48 android:text="I am a TextView" /> 49 <Button android:id="@+id/button" 50 android:layout_width="wrap_content" 51 android:layout_height="wrap_content" 52 android:text="I am a Button" /> 53</LinearLayout> 54</pre> 55 56<p>앱에 레이아웃 리소스를 로드하면 Android가 레이아웃의 각 노드를 초기화하여 57추가 동작을 정의하거나, 객체 상태를 쿼리 또는 레이아웃을 수정하는 데 쓸 수 있는 런타임 객체로 58초기화합니다.</p> 59 60<p>UI 레이아웃 생성에 대한 완전한 가이드는 <a href="declaring-layout.html">XML 61레이아웃</a>을 참조하십시오. 62 63 64<h2 id="UIComponents">사용자 인터페이스 구성 요소</h2> 65 66<p>UI를 구축할 때 모두 {@link android.view.View} 및 {@link 67android.view.ViewGroup} 객체를 사용해야 하는 것은 아닙니다. Android가 표준형 UI 레이아웃을 제공하는 앱 구성 요소를 여러 개 제공하고 있으니, 68개발자 여러분은 이에 대한 콘텐츠만 정의하면 됩니다. 이와 같은 UI 구성 요소에는 각각 69고유한 API 세트가 있습니다. 이들은 <a href="{@docRoot}guide/topics/ui/actionbar.html">작업 모음</a>, <a href="{@docRoot}guide/topics/ui/dialogs.html">대화</a> 및 <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">상태 알림</a> 등 각각 다른 문서에서 설명하였습니다.</p> 70 71 72