본문 바로가기

Programming/Android강의

안드로이드 강의08- Android GridLayout(그리드 레이아웃)


Android  GridLayout(그리드 레이아웃)


GridLayout의 Grid는 격자 눈금등을 뜻합니다. 바둑판 형식의 레이아웃 이라고 생각 하시면 될 듯합니다. 저는 그리드 레이아웃을 보면서 TableLayout이랑 비슷하네? 라고 생각하고 검색을 해보니 GridLayout는 API14레벨부터 추가된 레이아웃으로 리니어 레이아웃 렐러티브 레이아웃 테이블 레이아웃의 단점을 보안하여 만든 레이아웃으로 메모리 효율이 좋고 빠르다고 사용을 적극 권장하는 레이아웃 입니다. 


하지만 계산기 같이 표로 구성되어야 하는 경우 외에는 잘 사용하지 않는 레이아웃 입니다.


오늘은 그리드 레이아웃으로 간단한 계산기를 그려보는 것으로 포스팅을 마치겠습니다.


오늘 목표 레이아웃입니다.


GridLayout



<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="4"
    android:rowCount="4"
     >

    <Button android:text="7"/>
    <Button android:text="8"/>
    <Button android:text="9"/>
    <Button android:text="/"/>

    <Button android:text="4"/>
    <Button android:text="5"/>
    <Button android:text="6"/>
    <Button android:text="*"/>

    <Button android:text="1"/>
    <Button android:text="2"/>
    <Button android:text="3"/>
    <Button android:text="-"/>

    <Button android:text="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"
        />
    <Button android:text="."/>
    <Button android:text="+"/>


</GridLayout>


코드는 간단합니다.

HTML을 한번이라도 해보신 분은 바로 감이 오실겁니다.

그리드 레이아웃은 심플합니다. 속성 몇가지만 알게되면 쉽게 응용이 가능합니다.


columnCount = 가로(행)수

rowCount = 세로(열)수

columnSpan = "2" 컬럼합치기

rowSpan = "2" 로우합치기

layout_gravity ="fill_horizontal"


이정도 속성이면 여러가지 응용이 가능합니다. 단 주의하실 점은

만약 가로가 4개인데

columnSpan="2"의 속성을 가진 뷰가 있을경우 이 뷰는 가로 2개의 영역을 할당받기 때문에 나머지 공간은 2개만 남습니다. 

위의 코드를 보면 다른 버튼은 4개씩 배치되어 있지만 columnSpan="2"인 것은 3개만 배치되어 있는 것을 보실 수 있습니다.


GridLayout은 한 번 직접 장성해 보시는게 가장 빠르게 습득할 수 있습니다. 실제 계산기를 따라서 그대로 코딩을 한번 해보시면 금방 익숙해 질 수 있을겁니다.