1. 테이블 레이아웃은 이름에서 알 수 있듯이 뷰 객체들을 테이블 형태로 행과 열을 맞추어 표시할 수 있게 해 주는 레이아웃이다. 테이블 형태이지만 구분선이 없고 레이아웃의 크기에 한정되어 객체들이 배치되어야 하기 때문에 모든 행의 높이는 wrap_content로 설정되고 한 열의 크기는 가장 큰 객체의 크기에 맞추어 배치된다. 이 때 셀 내용의 크기가 열 폭에 비해 긴 경우는 접어서 표기되기 때문에 적절히 열 폭을 늘리거나 줄이는 작업을 따로 해 줄 필요가 있다.
     
  2. TableLayout의 열에 대한 속성.

    속 성

    의 미

    android:collapseColumns

    숨길 열의 번호

    0부터 시작하는 열의
    번호를
    comma로 구분

    android:shrinkColumns

    숨길 열의 번후

    android:stretchColumns

    늘릴 열의 번호

    android:layout_Columns

    이 뷰가 표시될 열 번호

    android:layout_Columns

    이 뷰가 차지할 열들의 개수


  3. 간단한 성적표를 출력하는 TableLayout을 만들어보자.
    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1"
        >
        <TableRow>
        	<TextView android:text="@string/kor" android:padding="5dip" />
        	<TextView android:text="@string/eng" android:background="#fff"
        		 android:padding="5dip" />
        	<TextView android:text="@string/mat" android:padding="5dip" />
        </TableRow>
        <TableRow>
        	<TextView android:text="90" android:padding="3dip" />
        	<TextView android:text="91" android:padding="3dip" />
        	<TextView android:text="92" android:padding="3dip" />
        </TableRow> 
    </TableLayout>



     위에서 가운데 영어 성적인 1번째 (0번 부터)열의 크기를 stretchColumns로 늘렸기 때문에 국어,수학 외의 나머지 공간을 모두 채워 넣게 된 것이다. 그리고 padding은 안쪽 여백을 설정 하는 것으로 dip 단위는 해상도에 종속되지 않게 물리적인 화면의 크기에 비례하는 수치이다.

     

'Programming > ANDROID' 카테고리의 다른 글

Layout 중첩 - Multi Page  (6) 2011.03.29
ViewGroup - RelativeLayout  (2) 2011.03.29
ViewGroup - FrameLayout  (1) 2011.03.28
ViewGroup - LinearLayout  (2) 2011.03.28
뷰 그룹(View Group) - Layout  (1) 2011.03.28
  1. LinearLayout은 수직(vertical)방향과 수평(horizontal)방향으로 뷰 객체들을 나열하는 레이아웃이다.
    android:orientation="vertical android:orientation="horizontal
     

     

     
    여기서 중요한것은 한 방향으로 계속 객체들을 추가하여 화면을 벗어나게 될 경우 자동으로 다음줄에 나온다거나 하지않고 그저 화면밖에 그려지기 때문에 실행 했을 때 역시 화면에 나오지 않게된다. 
     
  2. 위에서 뷰 객체를 버튼을 사용하였는데 객체마다 가지고있는 속성에대해서도 간단히 알아보자.
    <TextView android:text="딸기맛" 
    android:textSize="20pt" android:textStyle="bold"
    android:textColor="#ff0000" android:background="#ffffff"
    android:id="@+id/textView1" android:layout_width="fill_parent" 
    android:layout_height="wrap_content"></TextView>

    위에서 중요것은 android:layout_width="fill_parent"로 상위 View의 크기에 맞게 자신의 크기를 설정한다는것이다. 보통은 자신이 가지고있는 내용물의 크기아 맞게 크기를 설정하는 wrap_content를 사용한다.


  3. 다음으로 알아 볼 것은 레이아웃 내부의 객체들의 정렬위치를 설정할 수 있는 Gravity이다. 리니어 레이아웃의 Default값은 "left|top"으로 좌측 상단부터 정렬된다. Gravity로 지정할 수 있는 방향은 다음과 같다.
     top  컨테이너 위에 위치
     bottom  컨테이너 아래 위치
     left  컨테이너 왼쪽에 위치
     right  컨터이너 오른쪽에 위치
     center_vertical  컨테이너의 수직방향의 중앙에 위치
     center_horizontal  컨테이너의 수평방향의 중앙에 위치
     fill_vertical  수직방향을 컨테이너의 사이즈로 확대하여 배열
     fill_horizontal  수평방향을 컨테이너의 사이즈로 확대하여 배열
     center  컨테이너의 수평/수직방향의 중앙에 위치
     fill  수평/수직 모두 컨테이너의 사이즈에 확대하여 위치
    예를들어 레이아웃내에서 가운데 정렬되는 TextView를 하나 선언 해 보면 아래와 같다.

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:gravity="center"
        android:orientation="vertical">
        <TextView android:text="가운데 정렬" 
        android:id="@+id/textView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"></TextView>
    </LinearLayout>



'Programming > ANDROID' 카테고리의 다른 글

ViewGroup - TableLayout  (1) 2011.03.29
ViewGroup - FrameLayout  (1) 2011.03.28
뷰 그룹(View Group) - Layout  (1) 2011.03.28
안드로이드 한글 키보드 설정  (4) 2011.03.27
안드로이드 레이아웃-XML (Layout-XML)  (1) 2011.03.24
  1. 안드로이드 애뮬레이터를 실행하면 기본적으로 영어권에 맞춰있다. 그래서 시간은 물론이고 입력키보드도 한국과 맞지 않다. 가장 먼저 지역설정은 Custom Local에서 ko_KR을 선택한다. (선택이 잘 안되면 오~래 누르고 있어보자.) 그럼 이제 안드로이드의 인터페이스가 한국어로 출력되어나온다. 하지만 여전히 키보드 입력은 한글이 되지 않는다.

    

  2. 키보드 입력은 한국 개발자가 만들어 놓은 프로그램을 설치하여 사용 가능하다. 현재 한글 키보드 프로그램을 공개하고있는 사이트는 안드로이드펍 에 접속하여 접촉식 한글 자판 최신 바이너리를 다운받는다. 

     
  3. 안드로이드 프로그램의 확장자는 .apk이다. 이를 애뮬레이터에 설치하기위해서는 SDK가 설치된 곳에 adb.exe라는 실행 파일을 사용해야한다. 그러기 위해 다운받은 .apk파일을 adb.exe파일이 있는곳으로 옮긴 후 커맨드창으로 다음 명령어를 사용하여 설치 하면 된다. 현재 아래에 Failure라고 뜨는 이유는 내 애뮬레이터에는 이미 설치가 되어있기 때문이고, 처음 실행하였다면 Success 문구가 나왔을 것이다.
     



  4. 설치가 끝났으므로 이제 설정을 해보자. 안드로이드 설정 메뉴에 들어가 언어 및 키보드에서 한글 접촉식 키보드가 생긴 것을 확인하고 이를 선택하자. 그리고나서 글자 입력 창을 선택하면 한글 키보드가 나올 것이다. 
     



1. 안드로이드에서는 기존의 자바처럼 코드상에서 화면을 구성하며 데이터를 정의하고 사용할 수 있지만 XML 문서를 이용하는 방법을 새롭게 지원하고있다.


2. XML 레이아웃의 장점

 - 코드와 데이터가 완벽하게 분리되므로 개발자와 디자이너의 분담 작업이 용이하다.

 - 조건에 따라 레이아웃을 통째로 교체할 수 있으므로 호환성 확보국제화에 유리하다.

 - 레이아웃만 수정할 때는 컴파일하지 않아도 되므로 개발 속도가 빨라진다.

 - 구조와 속성을 함축적으로 기술할 수 있으며 레이아웃 재활용도 가능하다.


3. 실무에서는 코드 레이아웃과 XML 레이아웃을 둘 다 사용하며 동시에 적용하기도한다. 디자인에 관련된 정적인 레이아웃은 주로 XML코드로, 런타임과 연관있는 레이아웃은 자바 코드를 사용하는것이 보통이다.

4. 가장 기본적으로 생성되는 메인.xml을 살펴보자.
main.xml  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>
가장 위에 xmlns에서 안드로이드 애트리뷰트를 사용하겠다는 네임스페이스를 선언하는것이고 이 애트리뷰트 형식은 android:속성명="속성값" 이다. 각 속성명들과 속성값은 매우 다양하고 많기 때문에 예제를 통해서 하나씩 알아가는 것이 좋겠다.

5. 문자의 경우 Strings.xml에 마찬가지로 xml 형태로 관리되어 사용 할 수 있으며 아래와 같이 직접 문자열을 쓸 수 도 있다.
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="문자를 직접 입력합니다" />
6. AndroidMenifest.xml
 - 안드로이드 프로젝트 생성시 자동으로 생성되는 파일로 현재 프로젝트에 대한 뼈대를 구성하고있는 파일이다. 패키지 이름, 버전, 설치경로, SDK버전, Activity 등록 등에 대한 정보를 가지고있다.  

+ Recent posts