레이아웃 속성을 이용하여 버튼의 영역과 위치를 지정해보자.
2. 다음은 특정 버튼을 클릭하여 LinearLayout 속성을 지정해보자. layout_gravity 에서 위치를 선택하면 1번에서 지정한 영역안에서 배치를 하게된다. 1에서 match_parent 했기 때문에 버튼을 bottom하니 아래의 그림처럼 내려갔다. 3. 버튼을 클릭한 뒤 LinearLayout 속성의 layout_weight 의 크기를 키우면 여백에서의 가중치를 늘린다. 따라서 여백을 확인해가며 사용해야 한다. 다음과 같이 레이아웃과 버튼을 배치해보자. 좌측의 팔레트와 우측의 속성을 이용하면 마진이나 배치 등을 쉽게할 수 있으니 연습해보자. 다음과 같이 이미지 영역 기준으로 오른쪽으로 텍스트를 배치를 한다고 했을 때, layout_alignRight 는 이미지 영역 내에서의 오른쪽 위치를 지정하는 것이고, layout_toRightOf 는 이미지를 기준으로 이미지의 바깥에 위치하게 된다. 앞에서 책을 따라 천천히 진행을 하다가 궁금증이 발생한 Button의 위치 변경! 우선 작업은 Graphical Layout에서 이루어진다. 스샷에서와 같이 버튼을 클릭하고 Change Margins를 누른다. 그럼 하나의 창일 뜰텐데 여기서 얼마만큼의 간격을 띄울것인지 숫자dp로 입력하면 끝이다. 그리고 참고용 main.xml내용도 같이 첨부한다. <?xml version="1.0" encoding="utf-8"?> <TextView <Button android:text="Button" /> </LinearLayout> 레이아웃안드로이드 앱 화면을 구성하는 요소들을 뷰(View)라고 칭한다. 버튼, 텍스트, 등등 여러개의 뷰는 각자 정해진 위치를 가지고 있다. 레이아웃(Layout)은 뷰의 배치 방식을 정의한 것이다. LinearLayout (리니어 레이아웃)
뷰를 쌓는 방향 (orientation) 리니어 레이아웃은 뷰를 차례대로 추가하는 레이아웃이므로, 방향은 반드시 지정해야 하는 속성이다. 선택 가능한 방향은 위에서 아래(↓), 또는 왼쪽에서 오른쪽 방향(→)이다.
동일한 코드에서 orientation 속성에 따라 다른 방향으로 정렬된 뷰들 뷰의 정렬 방향 (gravity)
예를들어, 버튼2의 버튼2가 우측으로 정렬되었다가로가
가로가
정렬 속성은 끌어 당기는 방향으로 여유 공간이 있을 경우에만 적용된다. 높이가 100인 LinearLayout 안에서 높이가 100인 TextView에 공간 분할 (weight) 여러개의 뷰를 특정한 비례에 맞춰 배치하고 싶을 때는 무조건 남아있는 여유 공간을 기준으로 공간을 분할하기 때문에, 이 속성을 사용할 때는 해당
방향의 길이를 0dp로 설정해야 한다. 예를들어 3개의 버튼을 동일한 크기로 가로 방향으로 배치한다면
이런 식으로 레이아웃의 크기 설정 (padding, margin)뷰가 차지할 공간은 기본적으로 layout_width와 layout_height에 의해 결정된다. 뷰 내부에서 여유 공간을 두고 싶다면
LinearLayout 내부 상하좌우에 padding을 15,TextView 내부 상단에 padding을 30, 좌측에 margin을 20 부여한 모습이다. 요약
|