Android Document  SDK old PDF 파일
Common Layout Objects
작성일 2008-03-03 (월) 11:08
ㆍ추천: 0  ㆍ조회: 5511      

Common Layout Objects [일반적 레이아웃 오브젝트들]

The following are the most common view groups you'll use in your applications. This gives some basic
information about each type; for in-depth detail, see the linked reference page topic for each.

다음은 여러분이 여러분들의 애플리케이션에서 사용할 가장 일반적인 view group들이다. 이것은 각 타입에
대해 약간의 기본적인 정보를 제시합니다. 더 깊은 상세사항을 위해서는 각각에 대해 링크된 참조된 페이지
주제를 보기 바랍니다. 


FrameLayout is the simplest layout object. It is intended as a blank reserved space on your screen that
you can later fill with a single object — for example, a picture that you'll swap out. All child elements are
pinned to the top left corner of the screen; you cannot specify a location for a child of a
Later children will simply be drawn over earlier objects, partially or totally obscuring them (unless the
newer object is transparent).

FrameLayout은 가장 단순한 레이아웃 오브젝트이다. 이것은 여러분이 나중에 하나의 오브젝트(예를들어
바꾸고자 하는 사진)를 채울 수 있는 스크린상의 예약된 빈 공간으로 사용된다. 모든 하위 구성요소는
왼쪽상단에 위치하게 된다. 여러분은 FrameLayout의 하위 구성요소를 위한 위치를 지정할 수 없다. 나중에
하위 구성요소들은 이전 오브젝트들을 위에 단순히 그려지며, 부분적이거나 또는 전체적으로 그것을 가리게
된다.(단, 나중에 사용된 것이 투명 오브젝트 아닌 경우)


A LinearLayout aligns all children in a single direction — vertically or horizontally, depending on what
property you set on the
LinearLayout. All children are stacked one after the other, so a vertical list will
only have one child per row, no matter how wide they are, and a horizontal list will only be one row high
(the height of the tallest child, plus padding).
LinearLayout respects margins between children, and also
gravity (right, center, or left alignment of a child).

LinearLayout also supports assigning a weight to individual children. This value allows children to
expand to fill any remaining space on a screen. This prevents a list of small objects from being bunched
to one end of a large screen, allowing them to expand to fill the space. Children specify a weight value,
and any remaining space is assigned to children in the proportion of their declared weight. Default
weight is zero. So, for example, if there are three text boxes, and two of them declare a weight of 1, two
of them will expand equally to fill the remaining space, and the third will not grow any additional amount.

LinearLayout은 모든 하위 구성요소를 LinearLayout 에 여러분이 설정한 속성대로 수직 또는 수평 중 하나의 
방향으로 정렬한다.  모든 하위 구성요소는 차례대로 탑재된다. 그러므로 수직 목록은 그것이 얼마나 넓든
상관없이 한 줄에 한개의 하위 구성요소만을 갖게 된다. 그리고 수평 목록은 하나의 줄높이(가장 큰 하위
구성요소에 padding을 추가한 높이)로 한줄로 존재하게 된다. LinearLayout은 하위 구성요소들 간의 margin과

더불어 gravity(하위 구성요소의 오른쪽, 중간, 왼쪽 정렬)를 반영한다.
또한, LinearLayout은 하위구성요소별로 가중치를 지정하는 것을 지원한다. 이 값은 하위 구성요소들이 화면상
에 남는 임의의 공간을 채울 수 있도록 확장되는 것을 허용한다. 이것은 작은 오브젝트들이 스크린상의 한쪽끝
으로 몰리는 것을 차단하며, 그것들이 공간을 채울 수 있도록 확대되는 것을 가능하게 한다. 하위 구성요소들은
하나의 가중치 값을 지정하게 되며, 남는 공간은 그것들에 선언된 가중치 비율별로 배분된다. 가중치 기본값은
0 이다. 예를들어, 3개의 텍스트 박스가 있고, 그것중 2개가 가중치 1로 선언되어 있다면, 그것중 2개는 남는
공간을 채우기 위해 동일하게 확장될 것이고, 세번째 것은 어떤 추가적인 영역을 갖게 커지지 않을 것이다.
The following two forms represent a LinearLayout with a set of elements: a button, some labels, some
text boxes. Both have padding values to adjust the padding nicely. The text boxes have their width set
to FILL_PARENT; other elements are set to WRAP_CONTENT. The gravity, by default, is left. The form on the left
has weight values unset (0 by default); the form on the right has the comments text box weight set to 1.
If the Name textbox had also been set to 1, the Name and Comments text boxes would be the same height.

아래의 두개의 형태은 하나의 버튼, 약간의 라벨들, 약간의 텍스트 박스들과 같은 구성요소들의 집합을 가진
LinearLayout을 나타낸다. 두개 모두 padding을 좋게 조절하는 padding 값을 가지고 있다. 텍스트 박스는
너비가 FILL_PARENT로 설정되어 있으며, 나머지 구성요소들에는 WRAP_CONTENT가 설정되어 있다.
기본값으로 gravity는 left이다. 왼쪽에 있는 형태는 가중치 값이 설정되어 있지 않다(기본값 0). 오른쪽에 있는
형태는 Comments 텍스트 박스의 가중치는 1 로 설정되어 있다. 또한, 만약 Name 텍스트 박스가 1 로 설정
되었다면, Name과 Comments 텍스트 박스들은 동일한 높이가 될 것이다.
Within a horizontal LinearLayout, items are aligned by the position of their text base line (the first line of
the first list element — topmost or leftmost — is considered the reference line). This is so that people
scanning elements in a form shouldn't have to jump up and down to read element text in neighboring
elements. This can be turned off by setting android:baselineAligned="false" in the layout XML.

수평 LinearLayout안에서, 아이템들은 텍스트 베이스라인 위치에서 정렬된다 (최초 리스트 구성요소인 최상위
또는 최좌단 구성요소의 최초 라인은 참조 라인으로 고려된다). 이것은 사람들이 어떤 형식의 구성요소를
스캐닝하는 과정에서 인접한 구성요소에 있는 구성요소 텍스트를 읽기 위해 위와 아래로 점프하지 못하도록
한다. 이것은 레이아웃 XML에서 android:baselineAligned="false"를 설정하는 것에 의해서 해제될 수 있다.


TableLayout positions its children into rows and columns. A TableLayout consists of a number of
TableRow objects, each defining a row (actually, you can have other children, which will be explained
below). TableLayout containers do not display border lines for their rows, columns, or cells. Each row
has zero or more cells; each cell can hold one View object. The table has as many columns as the
row with the most cells. A table can leave cells empty. Cells cannot span columns, as they can in
HTML. The following image shows a table layout, with the invisible cell borders displayed as dotted

TableLayout은 열과 행에 하위 구성요소들 위치를 부여한다. TableLayout은 몇 개의 TableRow 오브젝트
(각각은 하나의 열을 정의함 - 실질적으로 여러분은 다른 하위구성요소를 가질 수 있다. 그것은 아래에
설명될 것이다.)로 구성된다. TableLayout 컨테이너들은 열,행,셀들을 위한 테두리 라인들을 표시하지 않는다.
각 열은 0 개 또는 그 이상의 셀들을 가진다. 각 셀은 하나의 View 오브젝트를 가질 수 있다. 
The table has as many columns as the row with the most cells.(번역要)
하나의 테이블은 셀을 빈 상태로 남겨둘 수 있다. 셀들은 HTML에서 가능한 것처럼 열들을 병합할 수 없다.
아래의 이미지는 테이블 레이아웃을 보여준다. 점선으로 보여지는 셀 테두리 라인은 실제로는 보여지지 않는다.  

Columns can be hidden, can be marked to stretch to fill available screen space, or can be marked as
shrinkable to force the column to shrink until the table fits the screen. See the reference documentation
for this class for more details.

열들은 숨겨질 수 있고, 가용한 스크린 공간을 채우도록 확장되도록 설정될 수도 있고, 또한 테이블이 스크린에
알맞게 될 때까지 행을 줄일 수 있도록 하기 위해 줄이도록 설정될 수도 있다. 보다 상세한 내용을 위해서는
이 클래스를 위한 참조 문서를 보기 바랍니다. 


AbsoluteLayout enables children to specify exact x/y coordinates to display on the screen, where (0,0)
is the upper left corner, and values increase as you move down or to the right. Margins are not
supported, and overlapping elements are allowed (although not recommended). We generally
recommend against using AbsoluteLayout unless you have good reasons to use it, because it is fairly
rigid and does not work well with different device displays.

AbsoluteLayout은 하위 구성요소들을 스크린에 표시하기 위한 정확한 x/y 좌표를 명시하는 것을 가능하게 한다.
(0,0)은 왼쪽 상단 코너이며, 값들은 위 또는 아래로 이동함으로써 증가된다. Margin은 지원되지 않으며,
언급되지는 않았지만  구성요소를 겹치는 것은 허용된다. 우리는 일반적으로 그것을 사용할 좋은 이유가 없는
한 AbsoluteLayout 사용을 권하지 않는다. 이것은 꽤 정밀하기 때문에, 서로 다른 디바이스 화면상에서는 잘
작동하지 않는다.


RelativeLayout lets children specify their position relative to each other (specified by ID), or to the
parent. So you can align two elements by right border, or make one below another, or centered in
the screen. Elements are rendered in the order given, so if the first element is centered in the screen,
other elements aligning themselves to that element will be aligned relative to screen center. If using
XML to specify this layout (as described later), a referenced element must be listed before you refer
to it.

Here is an example relative layout with the visible and invisible elements outlined. The root screen
layout object is a RelativeLayout object.

RelativeLayout은 하위 구성요소들이 (ID에 의해 명시된) 각각의 다른 것들이나 또는 상위 구성요소에
상대적인 위치를 보여할 수 있게 한다. 그러므로 여러분은 우측선을 기준으로 두개의 구성요소를 정렬할
수 있거나 하나를 다른 하나의 아래에 있도록 하거나, 스크린에 중간에 위치하게 할 수 있다. 구성요소들은
주어진 순서대로 렌더링된다. 그러므로 만약 최초의 구성요소가 스크린의 중간에 위치한다면, 나머지
구성요소들은 스크린의 중심에 상대적으로 정렬될 수 있도록 스스로를 정렬한다. 나중에 묘사하는 것처럼
이러한 레이아웃을 정의하기 위한 XML을 사용한다면, 참조되는 구성요소는 여러분이 그것을 언급하기
전에 기술되어야 한다.
여기에 보여지면서도 (실제로는) 안보여지는 윤곽을 가진 구성요소의 relative layout 예가 있다. 최상위
스크린 레이아웃 오브젝트는 하나의 RalativeLayout 오브젝트이다.

This diagram shows the class names of the screen elements, followed by a list of the properties
of each. Some of these properties are supported directly by the element, and some are supported
by its LayoutParams member (subclass RelativeLayout for all the elements in this screen, because
all elements are children of a RelativeLayout parent object). The RelativeLayout parameters are
width, height, below, alignTop, toLeft, padding, and marginLeft. Note that some of these parameters
support values relative to other children — hence the name RelativeLayout. These include the toLeft,
alignTop, and below properties, which indicate the object to the left, top, and below respectively.

이 다이어그램은 스크린 구성요소의 클래스 이름과 각각에 대한 속성들의 목록을 보여준다. 이러한 속성
들 중 어떤 것은 그 구성요소에 의해 직접적으로 지원되며, 어떤 것은 그것의 LayoutParams 멤버들에
의해 지원된다. (스크린에 있는 모든 구성요소에 대한 서브클래스 RalativeLayout이 해당 멤버임.
왜냐하면 모든 구성요소는 RalativeLayout 상위 오브젝트의 하위 구성요소이기 때문임) RelativeLayout
파라메터들은 width, height, below, alignTop, toLeft, padding, 그리고 marginLeft이다. 이러한 파라메타
들중의 어떤 것은 다른 하위구성요소들에 상대적인 값을 지원한다.- 그래서 이름이 RelativeLayout임.
이것은 toLeft, alignTop, 그리고 below 속성들을 포함한다. 그것들은 left, top, below 각각에 대한 오브젝트
를 가리킨다.

Summary of Important View Groups

These objects all hold child UI elements. Some provide visible UI, and others only handle child layout.
이러한 오브젝트들은 모두 하위 UI 구성요소를 갖는다. 약간은 보여지는 UI를 제공하고, 다른 것들은
하위 구성요소 레이아웃을 제어할 뿐이다.
Class Description
Enables you to specify the location of child objects relative to the parent in exact measurements (for example, pixels).
여러분이 정확한 수치(예를 들어, pixels) 로 상위 오브젝트에 대해 상대적으로 하위 오브젝트의 위치를 명시하는 것을 가능하게 함.  
FrameLayout Layout that acts as a view frame to display a single object.
단일 오브젝트를 표현하기 위한 view frame으로서 역할을 하는 레이아웃. 
Gallery A horizontal scrolling display of images, from a bound list.
묶음 목록에서 이미지들을 수평으로 스크롤하면서 보여주기. 
GridView Displays a scrolling grid of m columns and n rows.
m 열과 n 행의 스크롤되는 눈금(격자)구조를 보여줌. 
LinearLayout A layout that organizes its children into a single horizontal or vertical row. It creates a scrollbar if the length of the window exceeds the length of the screen.
하나의 수평 또는 수직 행 안에 하위구성요소를 배치하기 위한 레이아웃.
그것은 윈도우의 길이가 스크린의 길이를 초과하면 스크롤바를 생성한다. 
ListView Displays a scrolling single column list.
스크롤링되는 하나의 컬럼 리스트를 보여준다. 
PopupList A freestanding popup list of elements with a border.
하나의 테두리를 가진 구성요소의 독립적인 팝업 목록. 
RelativeLayout Enables you to specify the location of child objects relative to each other (child A to the left of child B) or to the parent (aligned to the top of the parent).
각기 다른 것(하위 구성요소 B의 왼쪽에 하위 구성요소 A) 또는 상위 구성요소(상위 구성요소의 최상단에 정렬)에 대해 상대적으로 하위 오브젝트의 위치를 명시하는 것을 가능하게 함.  
ScrollView A vertically scrolling column of elements.  
수직으로 구성요소의 column을 스크롤링함.
Spinner Displays a single item at a time from a bound list, inside a one-row textbox. Rather like a one-row listbox that can scroll either horizontally or vertically.  
한줄짜리 텍스트박스안에서, 묶여진 목록으로 부터 한번에 하나의 아이템을 보여준다. 수평 또는 수직으로 스크롤될 수 있는 한줄짜리 리스트박스와 다소 비슷함. 
SurfaceView Provides direct access to a dedicated drawing surface. It can hold child views layered on top of the surface, but is intended for applications that need to draw pixels, rather than using widgets.  
그리기 전용인 표면에 직접 접근하는 것을 제공함. 그것은 표면의 최상위에 겹쳐진 상태의 하위 view들을 보유할 수 있다. 하지만 위젯을 사용하는 것보다는 점을 그리는 것이 필요한 애플리케이션을 위한 것이다.
TabHost Provides a tab selection list that monitors clicks and enables the application to change the screen whenever a tab is clicked.
클릭에 반응하는 탭 선택목록을 제공하며, 탭이 클리될 때 애플리케이션이 바뀌도록하는 것을 가능하게 한다. 
TableLayout A tabular layout with an arbitrary number of rows and columns, each cell holding the widget of your choice. The rows resize to fit the largest column. The cell borders are not visible.
임의의 수의 행과 열을 가진 표 레이아웃. 각각의 셀은 여러분이 선택한 위젯을
가질 수 있다. 행은 가장 큰 열에 맞게 사이즈가 재설정된다. 셀 테두리는 보여지지 않는다. 
ViewFlipper A list that displays one item at a time, inside a one-row textbox. It can be set to swap items at timed intervals, like a slide show.  
한번에 한개의 아이템을 보여주는 목록. 이것은 슬라이드 쇼처럼 시간주기로 아이템을 바꾸도록 설정될 수 있다.
ViewSwitcher Same as ViewFlipper.
ViewFlipper와 동일. 
이름아이콘 palfuni
2009-02-19 11:22
감사합니다.. 많은 도움이 되었습니다.
덧글 쓰기 0
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
48 What is Android? 2008-03-03 12027
47 Getting Started with Android 2008-03-03 9212
46 Implementing a User Interface 2008-03-03 4512
45 Hierarchy of Screen Elements 2008-03-03 4520
44 Common Layout Objects 2008-03-03 5511
43 Working with AdapterViews 2008-03-03 3606
42 Designing Your Screen in XML 2008-03-03 4062
41 Listening for UI Notifications 2008-03-03 3524
40 Applying a Theme to your Application 2008-03-03 3386
39 UI Elements and Concepts Glossary 2008-03-03 4127
38 Android Building Blocks 2008-03-03 3957
37 Storing, Retrieving and Exposing Data 2008-03-03 2983
36 Security and Permissions in Android 2008-03-03 3812
35 Life Cycle of an Android Application 2008-03-03 5140
34 Developing Android Applications 2008-03-03 3872
33 Resources and Internationalization 2008-03-03 3877