본문 바로가기
일상생활 이야기/안드로이드 스튜디오 독학하기

안드로이드 스튜디오 23일째

by 인터넷떠돌이 2017. 3. 20.
반응형

안녕하세요?


이번 포스팅에서는 LinearLayout에서 어떻게 컴포넌트를 배치하고 그 컴포넌트의 세세한 배치를 위해서 공부한 내용을 포스팅 하고자 합니다.



우선 언제나 그렇듯이 새 프로젝트를 생성 하도록 합니다. 프로젝트의 이름은 LinearActivity_test라고 지었습니다.



다음은 res폴더 아래에 있는 layout폴더에서 우클릭을 한 다음에, New 메뉴에서 Layout resource file을 클릭해서 새로운 레이아웃을 만들도록 합니다.


기본적으로 Linearlayout이 선택이 되어 있으며, 여기다가 레이아웃의 이름을 gravity.xml이라고 지정을 합니다. 그리고 다음은 팔레트에서 버튼 컴포넌트를 3개 가지고 와서 가로로 배치를 하도록 합니다.



위 스크린샷은 버튼 컴포넌트 3개를 가지고 와서, LinearLayout의 속성항목에서 orientation을 수평(horizontal)로 설정을 한 화면입니다. 이렇게 버튼 3개를 가로로 정렬을 한 다음에, 이번의 주제인 Layout_gravity 속성을 수정하러 가 봅니다.



기본적으로 properties항목에 안 보이기에, [view all properties]를 클릭해서 모두 보이게 만들어야 합니다. 여기서는 각각 제일 왼쪽부터 속성을 left, center, right로 지정을 합니다.



하지만 위 스크린샷처럼 의도한 대로 Do it 안드로이드 앱 프로그래밍 책에서 나오는 것과 같이 나오지 않고, 다르게 나왔습니다. 그 이유를 조금 찾아보니 알만 했습니다.



LinearLayout의 Orientation을 수평으로 할게 아니라 수직(vertical)로 하니까 제가 의도한 대로 나오는 것을 볼 수 있었습니다. 찹고로 버튼의 높이가 많이 높아져 있어서 일일히 손으로 고쳐야 하기는 했습니다. 아무튼 이렇게 Layout_gravity는 다음과 같은 사실을 알 수 있었습니다.


컴포넌트가 여유 공간이 있을 때, 이 컴포넌트가 전체 공간에서 어디에 위치할 것인가를 결정한다.


그럼 여기서 부터는 이제 다른 속성에 해당하는 gravity속성을 알아보러 갑니다.



이번에는 텍스트뷰라는 컴포넌트3개를 팔레트로 부터 가지고 와서 3개를 차례대로 가져옵니다. 먼저 텍스트뷰의 width는 match_parent로 지정을 하고, 마지막 3번째 텍스트 뷰의 높이(height)까지 match_parent로 지정을 하도록 합니다. 그리고 각각의 텍스트뷰에는 [TEXT test]라고 쓰도록 하고, 다음으로 글자의 색은 빨간색에 크기는 32dp로 지정을 합니다.



gravity라는 속성도 그냥은 보이지 않고, properties윈도우에서 view all properties를 해야 보입니다. 여기서는 가장 윗쪽에 있는 텍스트뷰부터 left, right, center_horizontal, center_vertical로 지정을 하도록 합니다.



최종결과는 위 스크린샷과 같습니다. 스크린샷을 보시면 각각의 텍스트뷰에서 글자의 위치가 달라져 있는 것을 볼 수 있습니다.


이처럼 gravity속성은 커다란 컴포넌트 안에서 글자와 같은 것이 컴포넌트 안에서 어디에 위치하는 지를 결정한다고 볼 수 있습니다.

반응형