UI 개요

Android 앱의 모든 사용자 인터페이스 요소는 ViewViewGroup 객체를 사용하여 구축합니다. View는 사용자가 상호작용할 수 있는 무언가를 화면에 그리는 객체입니다. ViewGroup은 인터페이스 레이아웃을 정의하기 위해 다른 View(및 ViewGroup) 객체를 보유하는 객체입니다.

Android는 일반적인 입력 컨트롤(예: 버튼 및 텍스트 필드)과 여러가지 레이아웃 모델(예: 선형 또는 상대적 레이아웃)을 제공하는 ViewViewGroup 서브클래스를 모두를 포함하는 컬렉션을 제공합니다.

사용자 인터페이스 레이아웃

앱의 각 구성 요소에 대한 사용자 인터페이스는 그림 1에서 나타난 바와 같이 ViewViewGroup 객체의 계층으로 정의됩니다. 각 뷰 그룹은 하위 뷰를 구성하는 투명한 컨테이너이고, 하위 뷰는 UI의 일부분을 그리는 컨트롤이나 다른 위젯일 수 있습니다. 이 계층 트리는 개발자가 원하는 대로 단순하거나 복잡하게 만들 수 있습니다(그러나 단순한 것이 성능에는 가장 좋습니다).

그림 1. UI 레이아웃을 정의하는 뷰 계층.

레이아웃을 선언하려면 코드의 View 객체를 인스턴스화하고 트리를 구축하기 시작하면 되지만, 레이아웃을 정의하는 가장 쉽고 효과적인 방법은 XML 파일을 사용하는 것입니다. XML은 HTML과 유사한, 인간이 읽을 수 있는 레이아웃 구조를 제공합니다.

뷰의 XML 요소 이름은 해당 요소가 나타내는 각각의 Android 클래스를 따릅니다. 말하자면 <TextView> 요소가 UI에서 TextView 위젯을 생성하고, <LinearLayout> 요소는 LinearLayout 뷰 그룹을 생성합니다.

예를 들어, 텍스트 뷰와 버튼 하나가 있는 단순한 수직 레이아웃은 이런 모습을 띱니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I am a Button" />
</LinearLayout>

앱에 레이아웃 리소스를 로드하면 Android가 레이아웃의 각 노드를 초기화하여 추가 동작을 정의하거나, 객체 상태를 쿼리 또는 레이아웃을 수정하는 데 쓸 수 있는 런타임 객체로 초기화합니다.

UI 레이아웃 생성에 대한 완전한 가이드는 XML 레이아웃을 참조하세요.

사용자 인터페이스 구성 요소

UI를 빌드할 때 모두 ViewViewGroup 객체를 사용해야 하는 것은 아닙니다. Android가 표준형 UI 레이아웃을 제공하는 앱 구성 요소를 여러 개 제공하고 있으니, 개발자 여러분은 이에 대한 콘텐츠만 정의하면 됩니다. 이와 같은 UI 구성 요소에는 각각 고유한 API 세트가 있습니다. 이에 대해서는 작업 모음 추가, 대화상자, 상태 알림 등 각각 해당하는 문서에 설명되어 있습니다.