• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
인터페이스??
연속출석 :
1일 랭킹 : 6,397위 상사3
90%
90% (434 /480)
  • 댓글 2 |
  • 추천 5 |
  • 조회 2483 |
  • 2011-07-03 (일) 11:51
    이번시간은 인터페이스에 대한 전반적인 이해와 레이아웃의 종류를 알아보는 시간을 가져 보도록 하겠습니다.
    안드로이드는 상속구조가 잘 되어있습니다. 모든 안드로이드의 상위클래스에는 android.view.View가 있습니다.
    우리가 눈에 보이고 터치하는 버튼이나 화면은 모두 View클래스에 상속되었다고 봐도 되죠.
    버튼이나 글 등은 컨테이너에 담아 액티비티에 던달됩니다. 이런 컨테이너를 레이아웃이라고 합니다.
    앞에서 말했듯이 모든 클래스가 android.view.View를 상위클래스로서 상속을 하고 있다고 하였는데 레이아웃은 직접 상속하고 있는 것이 아니고 android.view.View를 상속한 ViewGroup클래스를 상속하여 구현되었습니다.
    이런 컨테이너들로 하여금 우리는 좀 더 많고 다양한 위젯을 화면에 담을수 있습니다. 컨테이너가 없이 프로그램을 작성한다면 우리는 한 화면에 한가지의 위젯밖에 담을수 없습니다. 컨테이너가 있음으로 인해 우리는 트리구조의 다양한 위젯들을 만들수 있습니다.

    보시면 ViewGroup는 레이아웃이며 View는 위젯입니다. 우리는 앞서 해봤지만 setContentView를 이용할 것입니다. 그리고 레이아웃은 하위 위젯이나 레이아웃을 포함하고 있습니다.
    즉 우리가 인터페이스를 구현하기에 앞서 어떠한 계층구조로 구현할지 생각을 해야 합니다.
    안드로이드에서는 기본적으로 이런 계층구조를 분석하기 쉽도록 Hierarchy Viewer이라는 툴을 제공합니다. 이 툴에 대해선 나중 시간에 알아보도록 하겠습니다.
    레이아웃의 종류에 대해 알아 보도록 하겠습니다.
    레이아웃은 5가지가 있으며 각각은 특징이 있습니다.
    LinearLayout : 프로젝트 생성시 기본으로 설정된 레이아웃으로 위아래 좌우로 직석형태의 배치형태를 하고 있습니다.
    RelativeLayout: 특정 객체를 기준으로 다른 객체의 위치를 결정합니다.
    TableLayout: HTML의 <Table>태그와 비슷합니다.
    FrameLayout: 가장 기본적 레이아웃이며 한번에 하나의 위젯만 출력할수 있습니다. 단독으로는 거의 쓰이지 않으며 여러 레이아웃과 조합해서 씁니다.
    AbsoluteLayout: x,y좌표로 위젯의 위치를 정합니다. 그래서 사용하기가 쉽지만 핸드폰마다 해상도가 다르고 지원하는 액정의 사이즈가 다르므로 핸드폰에 따라 프로그램이 엉망이 될수 있습니다. 그래서 구글에서도 공식적으로 사용을 하지말아달라고 권고하고 있습니다. (FrameLayout과 RelativeLayout을 혼용하면 대체 가능하다고 팁을 주고 있습니다.)
    오늘은 인터페이스에 대한 내용과 레이아웃의 종류에 대해 배워봤습니다. 다음시간부터는 위젯들을 하나씩 배울것이며 마지막에는 배운 위젯들을 레이아웃에 배치하는것에 대해 배울것입니다..^^
    오늘도 수고 하셨습니다~


    [이 게시물은 더어플님에 의해 2016-07-12 15:23:56 개발 꿀팁에서 복사 됨]
    ♣서로해♣ 2011-07-04 (월) 17:20:51
    휴...전과목도 이해가 안가는데.
    바쁘당 바뻐....ㅎㅎ
         
         
    레오쏭 2011-07-05 (화) 11:08:30
    서로해님 덕분해 할맛이 납니다~^^
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    공지글 이거슨 꿀팁!! 작성 가이드 v1.1 (2013-11-13) +174 더어플 13/03/12 136266
    액티비티?!-3.집으로 전화거는어플을 만들어볼까요?
    액티비티?!-3.집으로 전화거는어플을 만들어볼까요? (4)
    12년전
    h.2736
    v.4
    레오쏭
    [C언어]강좌3. 내용을 출력해보자.
    [C언어]강좌3. 내용을 출력해보자. (21)
    12년전
    h.2713
    v.14
    퉁퉁이
    인터페이스?!-레이아웃
    인터페이스?!-레이아웃 (1)
    12년전
    h.2673
    v.4
    레오쏭
    인터페이스??
    인터페이스?? (2)
    12년전
    h.2487
    v.5
    레오쏭
    안드로이드 프로젝트 생성 및 실행
    안드로이드 프로젝트 생성 및 실행
    11년전
    h.2342
    v.0
    GNCkorea
    Android 키보드 숫자형으로 시작하게 하기
    Android 키보드 숫자형으로 시작하게 하기 (1)
    12년전
    h.2322
    v.1
    지워니
    [C언어]강좌2. 간단한 실습준비 마무리
    [C언어]강좌2. 간단한 실습준비 마무리
    12년전
    h.2224
    v.2
    퉁퉁이
    버튼?!텍스트뷰?!
    버튼?!텍스트뷰?! (4)
    12년전
    h.2213
    v.4
    레오쏭
    업로드 지연 공지~
    업로드 지연 공지~ (11)
    13년전
    h.2157
    v.4
    레오쏭
    자바강좌 1-2 (자바의 데이터 타입과 연산자)
    자바강좌 1-2 (자바의 데이터 타입과 연산자) (3)
    12년전
    h.2122
    v.3
    ★CsJ★
    인텐트에 대한 간단한 보충~
    인텐트에 대한 간단한 보충~ (1)
    12년전
    h.2099
    v.5
    레오쏭
    자바강좌 예제.1 글자를 넣어보자
    자바강좌 예제.1 글자를 넣어보자 (6)
    12년전
    h.2082
    v.6
    ★CsJ★
    [경고를해보자]토스트?!토스트란무엇인가(2)
    [경고를해보자]토스트?!토스트란무엇인가(2) (2)
    12년전
    h.1976
    v.2
    레오쏭
    JAVA 언어 기초
    JAVA 언어 기초 (2)
    12년전
    h.1871
    v.3
    쿠미야
    추석을 기점으로 다시 강좌가 올라갑니다~
    추석을 기점으로 다시 강좌가 올라갑니다~ (6)
    12년전
    h.1807
    v.4
    레오쏭
    [이벤트] 프로그램강좌 포럼의 활성화를 위하여...
    [이벤트] 프로그램강좌 포럼의 활성화를 위하여... (4)
    12년전
    h.1607
    v.4
    쨩쵸딩
    현재 위치 얻기 간단한 팁~!
    현재 위치 얻기 간단한 팁~!
    11년전
    h.1596
    v.0
    GNCkorea