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. View group은 View들을 담을수 있는 컨테이너 역할을 한다고 앞서 설명했다. View클래스로부터 파생된 ViewGroup의 서브클래스들은 다음과 같다.

  2. 위의 다양한 View들 중에서 자주 사용하여 앞으로 실습까지 해 볼 것들을 미리 간단히 정리해보자.
    • LinearLayout : 수직(vertical)방향이나 수평(horizontal)방향으로 객체들을 배치하는 가장 기본적인 레이아웃이다.
    • FrameLayout : 왼쪽 상단을 기준으로 각각 객체들을 겹치게 표현한다. 이것을 이용 해 카드게임과 같이 맨 위의 카드와 아래의 카드를 순서대로 볼 수 있게 설정할 수 있다.
    • TableLayout : 행과 열을 가지는 표 형태의 레이아웃으로 가장 큰 요소의 크기로 셀을 설정하며 셀 테두리는 보이지 않는다.
    • AbsoluteLayout : 뷰 객체의 위치를 좌표형식으로 설정하는 방식으로 실무에서는 거의 사용되지않는다.
    • RelativeLayout : 뷰 객체들간의 상대적인 위치를 지정하는 레이아웃으로 1번의 왼쪽 2번의 아래쪽 이런 방식으로 상대적인 위치를 설정하게된다.
    • Gallery : 스마트폰의 사진 스크롤화면처럼 이미지들을 터치로 끌어서 볼수있도록 해준다.
    • GridVIew : 격자 모양으로 보여주는 클래스.
    • ListView : 스크롤되는 하나의 컬럼 리스트를 보여주는 클래스
    • ScrollView : 수직으로 구성요소의 열을 스크롤링하게 하는 클래스
    • Spinner : 콤보박스 역할을 하는 클래스
    • SurfaceView : Low level 그리기를 지원하는 클래스 (쓰레드를 이용한다)
       
  3. 자 그럼 이제 가장 기본적인 LinearLayout부터 알아보도록하자!

  4.  
  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