[안드로이드 기초] Gravity(중력)을 이용한 FrameLayout 배치
[안드로이드 기초] Gravity를 이용한 FrameLayout 배치 |
■ 프레임 레이아웃은 중력(Gravity)를 이용한 레이아웃 배치입니다. 서로 겹쳤을때도 투명도를 조절해서 서로 겹치는 효과도 표현할 수 있고, 때에 따라서는 같은 자리에 어떤 객체는 나타나고 어떤것은 나타나지 않게 표현할 수도 있습니다.
■ 간단한 예제를 하나 만들어가면서 FrameLayout이 어떻게 배치되는지 살펴보도록 하겠습니다.
예제는 겹치는 효과를 표현해 볼거구요. 전체 레이아웃을 프레임 레이아웃으로 구성하고 그안에 두개의" FrameLayout"과 하나의 "RelativeLayout"을 배치해서 적당현 투명도를 설정하여 겹쳤을때 명도 변화를 살펴보도록 하겠습니다.
■ 프로젝트를 생성하고 기본 레이아웃 배치를 살펴보겠습니다.
■ 프로젝트를 생성하고 Outline을 살펴보면 위 그림처럼 기본적으로 RelativeLayout으로 생성이 되는데요. 이것을 직접 xml 소스에서 변경해도 되지만, 다음과 같이 Outline에서도 바로 변경할 수 있습니다.
■ RelativeLayout을 선택한 상태에서 마우스 우클릭 하고 Change Layout 항목을 선택합니다.
다음 그림과 같이 레이아웃 목록이 나타나면 FrameLayout으로 변경하면 쉽게 변경이 가능합니다.
■ 이제 이 프레임 레이아웃에 두개의 FrameLayout과 한개의 RelativeLayout을 다음과 같이 배치하였습니다.
■ xml 소스코드를 살펴보도록 하겠습니다.
■ 첫번째 프레임 레이아웃을 배치하고, 크기를 가로/세로 모두 200dp로 설정을 했으며. 배경색은 핑크색으로 설정했습니다. 같은 방법으로 하나를 더 만들고 겹침 효과를 확인하기 위해서 배경색을반투명색인 "#99bbbbbb"로 설정을 했습니다. 그리고 gravity를 right로 설정해서 오른쪽으로 위치하면서 첫번째와 겹치게 했습니다.
세번째 레이아웃인 RelativeLayout도 크기는 200dp로 설정해서 배치하고, 배경색을 반투명색으로 설정합니다. 위치를 부모객체의 중앙에 위치하게 해서 위의 FrameLayout들과 겹치게 해서 세개 모두가 겹치게 했습니다. 이처럼 FrameLayout의 gravity를 이용한 배치와 겹침 효과를 활용하면 좀 더 예쁜 화면을 구성할 수 있습니다.