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 계층.

 1) 안드로이드 프로그램의 화면을 구성하는 주요 단위는 액티비티(Activity)이다. 하지만 액티티 자체는 화면에 직접적으로 보이지 않으며 실제로는 이 안에 뷰(View)라는 계층이 사용자에게 보여줄 화면을 구성한다. 즉 여러개의 뷰가 모여 하나의 액티비티를 이루고, 이러한 액티비티 여러개가 바로 하나의 응용 프로그램을 구성하는 것이다.


 2) View에서 파생된 클래스들이 매우 많고 각 클래스가 지원하는 속성이나 매서드 또한 상당히 많기 때문에 상당한 시간을 투자 해야 할 것이다. (아마 안드로이드 프로그래밍 공부의 절반 이상이 View를 포함한 GUI관련 공부가 될 것 같다.)


 3) VIew는 크게 2그룹으로 나뉜다.

  - 1. Widget(위젯) : 화면에 직접적으로 나타나는 사용자 인터페이스를 구성한다. 예를들어 Button, TextView, EditText, RadioButton 등이 있으며 흔히 컨트롤이라고도 부른다.


  - 2. View 그룹 : 직접적으로 보이진 안지ㅏ만 다른 뷰를 담는 컨테이너 역할을 한다. Layout(레이아웃)으로 불린다.



2. View 속성

 - View로부터 파생된 클래스들은 모두 View의 속성을 상속받고있기때문에 우선 View의 속성을 알아보도록하자. (하나하나 하기엔 너무 많기 때문에 중요한것부터 알아보도록하자... 몇개만 해보면 감이 올 것이다.)


 1) id

  - View를 칭하는 이름을 정하는것으로 xml문서에서 이 View를 참조할 때 사용하게된다. 

  - @+id/아이디명

  - 위의 사용법을 갖는다. @는 R.java 에 각 개체에대한 주소를 저장하도록 하게한다. +는 처음 정의할 때 사용하는방법으로 참조할 때는 +를 빼고 사용하면된다.

 2) layout_width, layout_height

  - View의 가로/세로 크기를 설정한다.

  - fill_parent //부모의 주어즌 크기를 다 채운다

    wrap_content //내용물의 크기만큼 채운다

    200px  // 200픽셀만큼 또는 사용자가 원하는 크기를 직접 정할 수 있다.

 3) background

  - View의 배경색을 지정한다

  - #RGB

    #ARGB

    #RRGGBB

    #AARRGGBB

  - #다음에 16진수로 각 생상 요소의 강도를 지정한다.

 4) padding

  - 안쪽 여백

 5) margin

  - 바깥 여백

 6) visibility

  - View의 표시 유무를 지정한다.

  - visible // 화면에 표시된다

    invisible //화면에 보이지 안게하지만 공간은 차지하고있다.

    gone // 화면에 보이지 않으며 공간역시 차지하지않는다.

 7) focusable

  - 키보드의 포커스(키 입력상태)를 받을지 설정.

  - 기본적인 View는 모두 false이고, EditText와같이 키보드입력이 꼭 필요한경우만 True로 되어있다.











ps. 안드로이드에서 사용되는 단위 설명

단위

 설명

 px

 픽셀

 in

 인치

 mm

 밀리미터

 pt

 포인트

 dp(또는 dip)

 해상도에 독립적인 단위

 sp(또는 sip)

 폰트 가변크기


+ Recent posts