• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
인터페이스??
연속출석 :
1일 랭킹 : 6,397위 상사3
90%
90% (434 /480)
  • 댓글 2 |
  • 추천 5 |
  • 조회 2476 |
  • 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
    서로해님 덕분해 할맛이 납니다~^^
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    45 Android Virtual Device(AVD) 사용법 GNCkorea 1 6307 12/08/09
    44 안드로이드 프로젝트 생성 및 실행 GNCkorea 0 2332 12/08/09
    43 안드로이드 강좌 1 - 어플리케이션 개발 시작하기. SDK … GNCkorea 1 3370 12/08/09
    42 현재 위치 얻기 간단한 팁~! GNCkorea 0 1572 12/08/07
    41 이번에 개발한 쇼핑몰 앱 소스 공개합니다.(Android, iO… GNCkorea 0 7559 12/08/07
    40 이클립스 내에서 안드로이드 제공하는 소스 난독화(ProG… GNCkorea 0 5174 12/08/07
    39 Low memory killer / win death / Gallery 선택후 프로… GNCkorea 0 3347 12/08/07
    38 [이벤트] 프로그램강좌 포럼의 활성화를 위하여... +4 쨩쵸딩 4 1596 12/05/21
    37 자바강좌 예제.1 글자를 넣어보자 +6 ★CsJ★ 6 2079 12/02/28
    36 자바강좌 1-2 (자바의 데이터 타입과 연산자) +3 ★CsJ★ 3 2110 12/02/27
    35 자바강좌 1-1 (자바의 데이터 타입과 연산자) +2 ★CsJ★ 2 2974 12/02/26
    34 JAVA 언어 기초 +2 쿠미야 3 1869 12/02/14
    33 안드로이드 프로그래밍 Tip +3 지워니 4 3655 12/01/27
    32 Android 키보드 숫자형으로 시작하게 하기 +1 지워니 1 2303 12/01/27
    31 [C언어]강좌3. 내용을 출력해보자. +21 퉁퉁이 14 2700 11/10/16
    30 [C언어]강좌2. 간단한 실습준비 마무리 퉁퉁이 2 2209 11/10/16
    29 [C언어]강좌1. C언어를 배우기위해 +1 퉁퉁이 5 3328 11/10/16
    28 [경고를해보자]토스트?!토스트란무엇인가(2) +2 레오쏭 2 1965 11/10/11
    27 [펌-초보금지]RAM최적화/LED밝기/내외장SD카드/ 스크립… +9 레오쏭 5 4765 11/10/07
    26 [경고를해보자]토스트?!토스트란무엇인가(1) +1 레오쏭 4 3307 11/10/02
    25 슬라이딩 도어를 만들어 볼까요? +3 레오쏭 3 2795 11/10/02
    24 윈도우 사용자명 한글일때 에뮬레이터 오류 해결 방법 +3 레오쏭 3 3408 11/09/26
    23 추석을 기점으로 다시 강좌가 올라갑니다~ +6 레오쏭 4 1793 11/09/03
    22 버튼?!-라디오,체크,토글버튼 레오쏭 4 3621 11/08/10
    21 인터페이스?!-키보드로 타이핑을 해볼까? +8 레오쏭 8 5914 11/07/19
    20 인터페이스?!-레이아웃 +1 레오쏭 4 2656 11/07/10
    19 버튼?!텍스트뷰?! +4 레오쏭 4 2191 11/07/07
    18 인터페이스?? +2 레오쏭 5 2480 11/07/03