안드로이드스터디 4
Upcoming SlideShare
Loading in...5
×
 

안드로이드스터디 4

on

  • 3,506 views

 

Statistics

Views

Total Views
3,506
Views on SlideShare
3,506
Embed Views
0

Actions

Likes
0
Downloads
29
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

안드로이드스터디 4 안드로이드스터디 4 Presentation Transcript

  • 0. View 와 ViewGroup
    • - View 와 ViewGroup 의 관계 -
    • View 클래스 – 안드로이드의 사용자 인터페이스를 위한 기본적인 구축 요소임
    • Button, Spinner, EditText 같은 모든 사용자 인터페이스 위젯은
    • 이 View 클래스에서 파생된 것 .
    • ViewGroup 클래스 – ViewGroup 의 파생클래스를 이용하면 View 객체들을
    • 화면에 조직적으로 표시할 수 있음 . 파생된 하위 클래스는
    • 레이아웃 , 뷰 컨테이너 위젯으로 나뉨 .
    • 코드에서 ViewGroup 에 자식 뷰 객체들을 추가할 때 - addView() 메서드를 사용
    • - XML 에서는 ViewGroup 객체를 정의하는 요소 안에 자식 뷰 요소들을 포함 시킴
    • 위젯들의 배치를 위한 ViewGroup –
    • ViewGroup 클래스를 직계 부모로 삼는 하위 클래스들은 이름이 Layout 으로 끝남 .
    • Ex) LinearLayout, RelativeLayout, AbsoluteLayout…
    • 이런 레이아웃 클래스들은 View 객체들을 화면에 다양한 방식으로 배치하는데 씀
    • ViewGroup 의 하위 클래스의 두 번째 범주는 간접적인 하위 클래스들로써 다른 뷰 객체들을 담는 컨테이너 역할을 하되 , 자기 자신도 보통의 위젯 들처럼 사용자와 상호작용하는 기능을 제공한다 .
    • Gallery – 자식뷰 들을 수평방향으로 나열 ( 현재 항복이 중앙에 좀 더 크게 표시 )
    • ListView – 자식 뷰들을 수직방향의 목록형태로 표시
    • TabHost – 여러 개의 탭들로 조직화 할 수 있게 함 .
    • GridView – Grid 방식으로 나눠져서 표시
    • ImageSwitcher, ScrollView 등의 추가적인 기능 .
    0. View 와 ViewGroup
  • 1. 레이아웃을 이용한 사용자 인터페이스 설계 안드로이드 SDK 프레임워크가 제공하는 내장 레이아웃 클래스 1-1. LinearLayout 1-2. AbsoluteLayout 1-3. FrameLayout 1-4. RelativeLayout 1-5. TableLayout XML 에서 가급적 설정하는것이 바람직함 . 특성설적의 일반적인 형태 android:layout_ 특성 _ 이름 = “ 값”
  • 1. 레이아웃을 이용한 사용자 인터페이스 설계 특성이름 적용대상 설명 값 Android:layout_height 부모뷰 , 자식 뷰 뷰의 높이 , 자식 뷰의 경우 필수 크기 (dimension) 값 또는 fill_parent 또는 wrap_content Android:layout_width 부모 뷰 , 자식 뷰 뷰의 너비 , 자식 뷰의 경우 필수 크기 (dimension) 값 또는 fill_parent 또는 wrap_content Android:layout_margin 자식 뷰 뷰의 상하좌우의 여분 공간 크기 값 Android:layout _margininTop 자식 뷰 뷰의 위쪽 여분 공간 크기 값 Android:layout _marginBottom 자식 뷰 뷰의 아래쪽 여분 공간 크기 값 Android:layout _marginRight 자식 뷰 뷰의 오른쪽 여분 공간 크기 값 Android:layout _marginLeft 자식 뷰 뷰의 왼쪽 여분 공간 크기 값
  • 1. 레이아웃을 이용한 사용자 인터페이스 설계 TextView 하나를 담은 LinearLayout 의 XML 레이아웃 자원 . LinearLayout 은 화면을 꽉 채우도록 설정했고 TextView 역시 LinearLayout 을 꽉 채우도록 설정했다 . -> 결과적으로 LinearLayout 이 화면을 다 채운다 .
  • 1. 레이아웃을 이용한 사용자 인터페이스 설계 Button 객체를 정의하는 레이아웃 자원 왼쪽과 위쪽 여백을 크기 (dimension) 을 지정하여 사용 . Wrap_content 를 사용 레이아웃 요소들은 화면의 임의의 직사각형 공간을 차지함 . 레이아웃은 View 에서 파생된 뷰 객체임 (View v) (?) -> 한 레이아웃을 다른 레이아웃에 넣는 것 역시 가능함 .
  • 1-1. LinearLayout
    • LinearLayout 의 요소 –
    • 1. 기본적인 LinearLayout 객체를 정의 (ViewGroup 의 일종 )
    • 2. 자신의 자식 위젯 (View 객체 ) 들을 한 행 또는 한 열로 차례로 표시
    • 3. 이 위젯이 화면 전체에 적용되는 경우 , 수평 (horizontal) 수직 (vertical) 을
    • 표시하기 위해 setOrientation( 방향특성 ) 메소드를 사용
    • 참고 ) TextView 위젯도 일종의 View 임 .
  • 1-1. LinearLayout 특성이름 적용대상 설명 값 Android:orientation 부모 뷰 자식 뷰들을 하나의 행으로 ( 수평 ) 표시할 것인지 하나의 열로 ( 수직 ) 으로 표시할 것인지를 결정한다 . Horizontal 또는 Vertical Android:gravity 부모 뷰 부모 안에서 자식 뷰의 중력 다음 상수들 중 하나 또는 여러 개 ‘ |’ 로 결합한 것 : top,bottom,left,right,center_vertical,fill_vertical,center_horizontal,fill_hirizontal,center,fill Android:layout_gravity 자식 뷰 특정 자식 뷰의 중력 다음 상수들 중 하나 또는 여러 개 ‘ |’ 로 결합한 것 : top,bottom,left,right,center_vertical,fill_vertical,center_horizontal,fill_hirizontal,center,fill
  • 1-1. LinearLayout
    • Java 코드에서 레이아웃 만들기–
    • ♦ java 코드에서 인터페이스 구성요소를 생성하는 것도 가능하나 효율적인
    • 개발공정을 위해서는 XML 지원 파일을 이용하는 방법이 직관적이며 조직화
    • 하기 좋으므로 추천되어진다 .
    해당 내용은 같은 결과
  • 1-2. AbsoluteLayout
    • AbsoluteLayout –
    • 자식 뷰 들의 x,y 좌표를 정확하게 지정하고자 할 때 쓰임
    • ( 픽셀 단위까지 정확하게 맞아 떨어져야 하는 경우 )
    • 2. 화면 크기가 다른 기기에서는 레이아웃이 깨질 우려가 있음 ( 유연성 부족 )
    • 3. 따라서 화면 전체가 아닌 특정영역의 픽셀 수준을 제어할 때 사용
    • 주의 : AbsoluteLayout 클래스는 안드로이드 1.5 부터 폐기 대상으로 분류됨
    • 따라서 이후의 SDK 에서는 언제라도 제거 될 수 있으므로 FrameLayout
    • 과 RelativeLayout 같은 레이아웃을 적절히 배치하여 사용할 것 .
  • 1-2. AbsoluteLayout 특성이름 적용대상 설명 값 Android:layout_x 자식 뷰 뷰의 왼쪽 최상단 모서리 기준 ( 부모 레이아웃 안에서 ) 크기 Android:layout_y 자식 뷰 뷰의 왼쪽 최상단 모서리 기준 ( 부모 레이아웃 안에서 ) 크기
  • 1-3. FrameLayout
    • FrameLayout –
    • 여러 자식 뷰 들을 겹쳐서 그리고자 할 때 사용하는 레이아웃이다 .
    • 2. 이 레이아웃은 같은 영역에 여러 이미지들을 표시하고자 할 때 유용하다 .
    특성이름 적용대상 설명 값 Android:layout _foreground 부모 뷰 내용 위에 겹쳐 그릴 표시물 자원 표시물 자원 참조 Android:layout _foregroundGravity 부모 뷰 전경 표시물의 중력 ( 정렬 방식 ) 다음 상수들 중 하나 또는 여러 개 ‘ |’ 로 결합한 것 : top,bottom,left,right,center_vertical,fill_vertical,center_horizontal,fill_hirizontal,center,fill Android:layout _mearureAllchildren 부모 뷰 레이아웃의 크기를 모든 자식을 고려하여 결정할 것인지 아니면 VISIBLE 로 설정된 자식들만 (INVISIBLE 로 설정된 것들은 빼고 ) 고려할 것인지 여부 . true, false Android:layout _gravity 자식 뷰 부모 안에서 자식 뷰의 중력 ( 정렬 방식 ) 다음 상수들 중 하나 또는 여러 개 ‘ |’ 로 결합한 것 : top,bottom,left,right,center_vertical,fill_vertical,center_horizontal,fill_hirizontal,center,fill
  • 1-3. FrameLayout icon icon2
  • 1-4. RelativeLayout
    • RelativeLayout –
    • 자식 뷰들을 상대적인 관게에 따라 배치한다 . 예를 들어 A 는 자식 B 아래
    • 자식 B 는 자식 C 왼쪽에 등등으로 상대적인 위치를 설정해 주면
    • RelativeLayout 이 그에 맞게 자식 뷰들의 위치를 결정 .
    • 2. 또한 레이아웃 가장자리를 기준으로 해서 설정 가능
    • 3. 그룹을 사용하지 않고 흥미로운 사용자 인터페이스 구축 가능
    특성은 교재 page 218 참고
  • 1-4. RelativeLayout Android:layout_centerVertical – 뷰를 부모의 수직 중앙에 배치 할 것인지르의 여부 Android:layout_centerInParent – 뷰를 부모의 수직 , 수평 중앙에 배치할 것인지의 여부 Android:layout_centerHorizontal – 뷰를 부모의 수평 중앙에 배치할 것인지의 여부 Android:layout_above – 뷰의 하단 가장자리를 대상 뷰의 상단에 붙임
  • 1-5. TableLayout
    • TableLayout –
    • 자식 뷰들을 열과 행으로 조직화된 표 형태로 배치
    • 개별 자식 뷰들은 “행 (row)” 에 해당하는 tableRow 레이아웃 ( 기본적으로 수평방향의 LinearLayout) 에 수평으로 나열되며 , 그런 TableRow 들이 여러 개 수직으로 나열된다 .
    • 3. TableRow 의 각 열 (column) 은 하나의 뷰 객체 ( 또는 뷰 객체들을 담은 레이아웃 ) 만 담는다 .
    • 4. 열 번호를 명시적으로 지정하지 않으면 자식 뷰는 기존 열의 오른쪽에 배치
    • 5. 디폴트로 각 열의 너비는 그 열에서 가장 큰 뷰 객체에 맞게 조정됨
    • 6. 하나의 뷰 객체가 한 행 전체를 차지하게 하고 싶다면 TableLayout 의
    • 그 행에 TableRow 요소 대신 해당 View 요소를 직접 포함 시키면 됨 .
    • 7. 열 번호 (0 에서 시작 ) 들을 명시적으로 지정해서 합치는 것도 가능
  • 1-5. TableLayout 특성이름 적용대상 설명 값 Android:layout _collapseColumns TableLayout 숨길 열들의 번호 (0 기반 ) 들을 쉼표로 분리해서 나열 문자열 또는 문자열 자원 참조 예 : 0.1.3.5.7 Android:layout _shrinkColumns TableLayout 줄일 수 있는 열들의 번호 (0 기반 ) 들을 쉼표로 분리해서 나열 한 것 문자열 또는 문자열 자원 참조 예 : 0.1.3.5.7 모들 열 지정시 *. Android:layout _stretchColumns TableLayout 늘릴 수 있는 열들의 번호 (0 기반 ) 들을 쉼표로 분리해서 나열 한 것 문자열 또는 문자열 자원 참조 예 : 0.1.3.5.7 모들 열 지정시 *. Android:layout_column TableRow 의 자식 뷰 이 뷰가 표시 될 열 번호 (0 기반 ) 정수 또는 정수 자원 참조 . 예 : 1. Android:layout_span TableRow 의 자식 뷰 이 뷰가 차지할 열들의 개수 1 이상의 정수 또는 정수 자원 참조 예 : 3.
  • 1-5. TableLayout