Presentation is loading. Please wait.

Presentation is loading. Please wait.

4-3. 레이아웃 관리 천안천일고등학교 류빈 www.skyone.hs.kr. 학습목표 학습내용 2 1. 리니어 이외의 기타 레이아웃을 배치하는 방법을 익힌 다. 2. 레이아웃을 관리하는 고급 기법에 대해 이해한다. 1. 렐러티브 레이아웃 2.Absolute 레이아웃 3.Frame.

Similar presentations


Presentation on theme: "4-3. 레이아웃 관리 천안천일고등학교 류빈 www.skyone.hs.kr. 학습목표 학습내용 2 1. 리니어 이외의 기타 레이아웃을 배치하는 방법을 익힌 다. 2. 레이아웃을 관리하는 고급 기법에 대해 이해한다. 1. 렐러티브 레이아웃 2.Absolute 레이아웃 3.Frame."— Presentation transcript:

1 4-3. 레이아웃 관리 천안천일고등학교 류빈 www.skyone.hs.kr

2 학습목표 학습내용 2 1. 리니어 이외의 기타 레이아웃을 배치하는 방법을 익힌 다. 2. 레이아웃을 관리하는 고급 기법에 대해 이해한다. 1. 렐러티브 레이아웃 2.Absolute 레이아웃 3.Frame 레이아웃 4.Table 레이아웃 5. 레이아웃 관리

3 3 레이아웃은 뷰의 컨테이너이므로 View 로부터 파생된 모든 객체를 레이아웃 안에 놓을 수 있으며, 레이아웃 자체도 View 의 파생 클래스이므로 레이아웃끼리 중첩시킬 수 있 다. 레이아웃 중첩 TextView 수직 리니어 테이블 테이블 로우 수평 리니어 레이아웃 중첩 예제 – NestLayout ①제일 바깥에 LinearLayout, 전체는 수직으로 뷰가 배열된다. ②수직 LinearLayout 안에 TextView, Table, 수평 LinearLayout 이 일차 차일드로 배치 된다. ③ Table 은 다시 2 행 3 열의 셀로 분할되고, 각 셀에는 텍스트 뷰가 들어있다. ④수평 LinearLayout 안에는 세 개의 TextView 가 배치되어 있다.

4 4

5 5

6 6

7 7

8 8 레이아웃끼리는 중첩도 가능한 관계이지만 상호 대체 가능한 관계도 성립한다. 앞에 만드 테이블 레이아웃 예제를 리니어로 구현해보자 각 텍스트 뷰마다 폭과 높이를 일일이 지정해야 한다는 면에서 번거롭다.

9 9 왼쪽에 이미지 뷰를 놓고 오른쪽의 아래 위로 텍스트 뷰 두개를 배치했다. 수평 리니어와 수직 리니어를 중첩 배치할 수도 있고 렐러티브 하나로 배치할 수도 있다. 이 경우는 미세한 면에서 약간씩 차이가 있지만 렐러티브는 중첩없이 하나의 레이아웃만으 로 배치해 내므로 속도에 유리하다. 실행 중 차일드가 숨겨질 때 남은 차일드의 정렬이 조정되지 않는점이 리니어보다 불리. 리니어는 겹침을 지원하지 않아 한 차일드가 커지면 아래쪽 차일드가 밀려난다. Upper TextView Lower TextView-description

10 10 실행 중 속성 변경

11 11

12 12

13 13 실행 중 속성 변경

14 14 XML 문서에 있는 레이아웃은 aapt 툴에 의해 이진 형태로 컴파일되어 실행 파일에 내 장된다 레이아웃 전개 전개 ( Inflation )

15 15

16 16 void addView(View child) void addView(view child, int index) void addView(View child, ViewGroup.LayoutParams params) public void setContentView (int layoutResID) public void setContentView (View view [, ViewGroup.LayoutParams params]) void setContentView (int layoutResID){ View v = layoutResID 전개 ; setContentView(v); } View inflate (int resource, ViewGroup root) static LayoutInflater LayoutInflater.from (Context context) static View inflate (Context context, int resource, ViewGroup root) LinearLayout linear = (LinearLayout)View.inflate(this, R.layout.c04_inflateion, null) setContentView(linear); setContentView(View.inflate(this, R.layout.c04_inflation, null)); 전개 ( Inflation )

17 17

18 18

19 19 ViewGroup.LayoutParams getLayoutParams () void setLayoutParams (ViewGroup.LayoutParams params) 뷰의 속성 변경

20 20


Download ppt "4-3. 레이아웃 관리 천안천일고등학교 류빈 www.skyone.hs.kr. 학습목표 학습내용 2 1. 리니어 이외의 기타 레이아웃을 배치하는 방법을 익힌 다. 2. 레이아웃을 관리하는 고급 기법에 대해 이해한다. 1. 렐러티브 레이아웃 2.Absolute 레이아웃 3.Frame."

Similar presentations


Ads by Google