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

안드로이드 스튜디오 독학하기 25일째

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

안녕하세요?


이번 포스팅에서는 layout_weight라는 속성을 사용해서, 레이아웃 안에서 어떻게 작용하는지를 알아보고자 실습을 해 보았으며, 그 내용을 한번 이번 포스팅에서 올려서 소개하고자 합니다.



먼저 새로운 레이아웃을 생성하면서, weight.xml이라고 이름을 지었습니다. 이렇게 새로운 레이아웃을 만든 다음에, 그 다음으로 할일은 LinearLayout이 기본적으로 수직(vertical)인데, 여기다가 수평(horizontal)속성의 레이아웃을 추가해야 합니다. 그런데 [Do it 안드로이드 앱 프로그래밍]이라는 책에서는 다음과 같은 방법을 제시하고 있습니다.


먼저 레이아웃의 design탭에서 text탭으로 전환을 한 다음, 제일 먼저 다음과 같은 구문을 추가하는 방법을 사용하였습니다.


<Linearlayout

    android:orientation="horizontal"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

   >


이런 코드를 추가해서 레이아웃을 추가하는 방법을 제시하고 있습니다만, 제가 해보니까 저런 코드를 추가할 것도 없이 아주 간단하게 리니어 레이아웃 안에다가 또 다른 레이아웃을 추가할 수 있었습니다.



위 스크린샷을 보시면, 팔레트 윈도우에서 이미 Layouts라는 항목이 있습니다. 여기다가 LinearLayout이 있으니, 이걸 선택해서 design탭에서 그냥 드레그 하는 것으로 아주 간단하게 추가를 할 수 있었습니다.


그리고 [Do it 안드로이드 앱 프로그래밍]이라는 책에 나와 있는 것과 같이, 실습을 위해서 텍스트뷰를 2개 추가하도록 합니다.


1번 텍스트뷰는 배경색을 노란색으로 만든 다음에, [텍스트]라는 글자의 색은 붉은색, 그리고 24dp의 textsize로 하고서, 2번 텍스트뷰는 배경색을 초록색으로 한 다음에, [텍스트]라는 글자의 색은 붉은색으로 하고 텍스트의 크기도 역시 24dp로 지정을 합니다.


그리고 두개의 텍스트뷰 모두 layout_weight를 두개다 1로 지정을 하였습니다. 

그렇게 배경색을 바꾸면서, 지난번 포스팅을 보셨으면 아시겠지만, 버튼이나 텍스트뷰의 배경색을 바꾸는 것이 쉽지가 않았습니다. 그런데 한가지 꽁수라고 해야 할까요? 이런 방법이 하나 있는 것을 알 수 있었습니다.



먼저 위 스크린샷을 보시면 색상을 마음대로 조작할 수 있는 윈도우가 열립니다. 여기서 위 스크린샷에 붉은색 밑 줄을 그은 항목에 보시면 색상에 대한 일종의 ID라고 해야 할까요? 코드가 나와 있는 것을 볼수 있습니다. 이 코드를 복사한 다음 나가서 properties항목으로 가서, background항목에 가서 붙여넣기를 합니다.



그냥 코드만 붙여넣기를 하면 안되고, 앞에 #을 붙인 다음 방금 복사한 코드를 붙여넣기를 하면 원하는 색상으로 버튼이나 텍스트뷰의 배경색상을 바꿀 수 있는 것을 이번 실습으로 알 수 있었습니다.



여기서 Layer_weight를 1로 둘다 지정을 하였고, 두개의 텍스트뷰 모두 layout_width를 match_parent에서 wrap_content로 지정을 하고서 모든 셋팅을 마치자, 이렇게 해서 첫번째 실습은 끝났고, 다음으로는 다시 수평방향(horizontal)의 LinearLayout을 추가하고 2개의 텍스트뷰를 추가하도록 합니다.


단, 이번에는 첫번째 텍스트뷰에는 layout_weight를 1로 지정을 하고, 두 번째 텍스트뷰의 layout_weight를 2로 지정을 하도록 했습니다.



정확하게 1대 2의 비율이 아니라, 1/3과 2/3비율로 지정이 됩니다. 즉, 그냥 layout_weight를 다르게 하면, 여기서 1과 2를 모두 합쳐서 3으로 만든 다음, 3분의 1과 3분의 2를 지정해서 나누어지게 됩니다. 


여기서 1:2의 비율로 두개의 텍스트 뷰를 나누기 위해서는 다음과 같이 Layout_width를 두 개의 텍스트 뷰 모두 0dp로 지정을 해야만 합니다. 역시 LinearLayout을 수평방향(horizontal)로 해서 추가를 하고, 다시 두개의 텍스트뷰를 추가하도록 합니다.



이렇게 지정을 하자 이제는 1대2의 비율로 나오는 것을 위 스크린샷을 통해서 볼 수 있습니다. 이번 실습을 통해서 이전에는 할 수 없었던 배경색상을 제대로 바꾸는 방법을 알아냈으며, 전에는 몰랐던 Layout_weight라는 속성에 대해서 제대로 알 수 있게 되었습니다.

반응형