728x90
반응형

그리드레이아웃(GridLayout)

  • 테이블 레이아웃처럼 위젯을 표 형태로 배치할 때 사용하지만 좀 더 직관적이다.
  • Androud 4.0(아이스크림 샌드위치, API 14)부터 지원

 

그리드레이아웃 속성

  • GridLayout 자체에 사용되는 속성
  • rowCount - 행 개수
  • columnCount - 열의 수
  • Orientation - 그리드를 수평 방향을 우선할지, 수직 방향을 우선할지를 결정한다.

 

그리드레이아웃 안에 포함될 위젯에서 자주 사용되는 속성

  • Layout_row - 자신이 위치할 행 번호(0번부터 시작)
  • Layout_column - 자신이 위치할 열 번호(0번부터 시작)
  • Layout_rowSpan - 행을 지정된 수만큼 확장
  • layout_columnSpan - 열을 지정된 수만큼 확장
  • layout_gravity - 주로 fill, fill_vertical, fill_horizontal 등으로 지정 행, 행 또는 열 확장시, 위젯을 확장된 셀에 꽉 채우는 효과를 낸다.

 

그리드 레이아웃 사용해 계산기 만들기

 

목표 - 그림[1]

[그림1] 그리드 레이아웃 계산기

 

 

코드

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="5"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="숫자를 입력하세요 : "
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="숫자를 입력하세요 : "
        android:textSize="20sp" />

    <Button
        android:id="@+id/button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="0" />

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="1" />

    <Button
        android:id="@+id/button3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="2" />

    <Button
        android:id="@+id/button4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="3" />

    <Button
        android:id="@+id/button5"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="4" />

    <Button
        android:id="@+id/button6"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="5" />

    <Button
        android:id="@+id/button7"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="6" />

    <Button
        android:id="@+id/button8"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="7" />

    <Button
        android:id="@+id/button9"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="8" />

    <Button
        android:id="@+id/button10"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:text="9" />

    <Button
        android:id="@+id/button11"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal"
        android:text="더하기" />

    <Button
        android:id="@+id/button12"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal"
        android:text="빼기" />

    <Button
        android:id="@+id/button13"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal"
        android:text="곱하기" />

    <Button
        android:id="@+id/button14"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_columnWeight="1"
        android:layout_gravity="fill_horizontal"
        android:text="나누기" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_rowWeight="1"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="결과 : "
        android:textSize="20sp" />
</GridLayout>

 

[그림2] 결과

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기