위젯과 레이아웃.

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

기본위젯과 레이아웃 둘째 마당 - Chapter 01 Do It! 안드로이드 앱 프로그래밍 Jun. 2013
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
04. 기본 위젯 익히기 제목. 04. 기본 위젯 익히기 제목 뷰와 뷰 상속을 이해한다. 기본 위젯을 다루는 방법을 익힌다. 안드로이드 앱의 기본적인 프로그래밍을 숙달한다.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Android Activity & Layout & View
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
Power Java 제3장 이클립스 사용하기.
.Net Web Application 2010 컴퓨터공학실험(Ⅰ)
최윤정 Java 프로그래밍 클래스 상속 최윤정
윤 홍 란 다이알로그(대화상자) 윤 홍 란
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
07. 메뉴와 대화상자 제목. 07. 메뉴와 대화상자 제목 메뉴를 작성하고 사용하는 방법을 배운다. 토스트의 다양한 출력 방법을 알아본다. 대화상자의 사용법을 익힌다.
○ 본 강의 자료는 이지스퍼블리싱(주)에서 제공하는 강의 교안입니다.
06. 고급 위젯 다루기 제목. 06. 고급 위젯 다루기 제목 고급 위젯을 다루는 방법을 익힌다. 뷰 컨테이너와 그 응용법을 학습한다. 매니패스트 파일의 설정법을 배운다.
06. 고급 위젯 다루기 제목. 06. 고급 위젯 다루기 제목 고급 위젯을 다루는 방법을 익힌다. 뷰 컨테이너와 그 응용법을 학습한다. 매니패스트 파일의 설정법을 배운다.
Android Activity & View & Layout
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
05. 레이아웃 익히기 제목. 05. 레이아웃 익히기 제목 레이아웃의 개념을 익힌다. 화면을 다양한 레이아웃으로 구성한다. Java 코드만으로 화면을 작성해 본다.
Power Java 제14장 배치 관리자.
UNIT 05 신문 만들기 로봇 SW 콘텐츠 연구원 조용수.
자바 5.0 프로그래밍.
CHAP 12. 리소스와 보안.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
2018년 10월 08일 박성진 Web & Internet [05] CSS3 속성 2018년 10월 08일 박성진
I F A A A B E A H A A A D C A G A A A B B B B A A A A B A B B B
인터넷응용프로그래밍 JavaScript(Intro).
Chapter03 캔버스(1) HTML5 Programming.
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
CHAP 5. 레이아웃.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Achro-5250, IMX6 안드로이드 어플리케이션.
그래픽 모듈 편집.
윈도우 컨트롤.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Clipping 이진학.
자바 5.0 프로그래밍.
11.어댑터 뷰 제목. 11.어댑터 뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
Mariadb JDBC PROGRAMMING2
CHAP 21. 전화, SMS, 주소록.
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
교보문고 전자도서관 이용방법.
05. 레이아웃 익히기 제목.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
컴퓨터 구성요소와 사용 컴퓨터 문서 작업 인터넷 활용
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
메뉴(Menu) 컴퓨터응용 및 실습 I.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
웹과 모바일 홈페이지의 이해와 제작 폰트_레이아웃
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Power Java 제14장 배치 관리자.
05. 레이아웃 익히기 제목. 05. 레이아웃 익히기 제목 레이아웃의 개념을 익힌다. 화면을 다양한 레이아웃으로 구성한다. Java 코드만으로 화면을 작성해본다.
6 객체.
Presentation transcript:

위젯과 레이아웃

뷰와 뷰 그룹 뷰 뷰 그룹 사용자 인터페이스 컴포넌트를 위한 기본 빌딩블록 화면에서 사각형 영역을 차지하며 그리기, 포커스 변화, 스크롤, 이벤트 처리 등을 담당 뷰 그룹 다수의 자식 뷰를 담을 수 있는 뷰 클래스의 확장 다른 뷰들을 모아 관리하기 위하여 사용되는 특별한 뷰 다른 뷰나 뷰 그룹을 하부에 포함할 수도 있고 독자적으로도 존재 가능 ViewGroup에서 파생된 클래스들은 크게 두 가지 범주인 레이아웃과 어댑터 뷰로 구별

뷰와 뷰 그룹 뷰 계층구조

뷰 속성과 메소드 식별자 ID 자신을 식별하기 위하여 정수 ID를 정의 ID는 일반적으로 레이아웃 XML 파일에서 배정되며 뷰 트리 내에서 자신을 찾기 위하여 사용 ID는 트리 전체에 걸쳐 유일할 필요는 없지만 찾고자 하는 뷰 내에서는 유일 <Button id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text"/> Button myButton = (Button) findViewById(R.id.my_button);

뷰 속성과 메소드 크기와 위치 뷰의 기하학적 모습은 폭과 높이로 표시되는 2차원의 직사각형으로 좌측 상단을 기준으로 위치를 픽셀 단위로 표시 layout_width와 layout_height라는 XML 레이아웃 속성을 사용하거나 ViewGroup.LayoutParams() 메소드를 사용 wrap_content fill_parent 혹은 match_parent 여백 padding paddingTop, paddingBottom, paddingLeft, 그리고 paddingRight

뷰 속성과 메소드 XML 속성 일부 메소드 일부 android:visibility – 위젯의 화면 표현 여부 결정. android:background – 16진수 RGB(#FFFFFF 형식)로 위젯의 배경 색깔 지정. 메소드 일부 setEnable() – 위젯을 활성화/비활성화 시킴. isEnable() – 위젯의 활성화 여부 check. requestFocus() – method를 호출한 위젯으로 fucus를 이동. getParent() – 자신이 포함된 부모 위젯이나 컨테이너 획득. findViewById() – 컴파일된 Resource, R 객체를 이용해 xml layout 파일에 선언된 위젯 인스턴스 획득 getRootView() – 최상위 view를 획득

위젯

개요 의미 일반적으로 기계 혹은 장치 속성을 가지며 독특하고 신기한 소형 부품이나 도구를 통칭 프로그래밍에서는 툴바, 트리, 슬라이더와 같이 사용자와 시스템 사이의 상호작용을 위한 인터페이스, 상호작용 방식에 적합하게 구조화된 컨트롤 요소를 의미 View의 서브클래스로 존재하며 완전한 모습을 갖춘 텍스트 필드나 버튼 같은 객체를 의미 사용자에게 정보를 표시하거나 사용자의 입력을 받아들이는 컴포넌트 DatePicker, TimePicker, 및 ZoomControls은 뷰 그룹으로부터 파생되지만 위젯과 같이 사용

AutoCompleteTextView 개요 위젯의 종류 - 1 클래스 개요 TextView 텍스트를 표시함 EditText 편집 가능한 텍스트를 표시함 AutoCompleteTextView 사용자의 입력에 맞춰 텍스트를 완성함 ImageView 아이콘이나 사진 등 이미지를 표시함 VideoView 비디오를 재생함 Button 기본적인 누름 버튼 CompoundButton 체크와 해제 상태를 갖는 누름 버튼 CheckBox 체크와 해제 상태를 갖는 체크박스 RadioButton 체크와 해제 상태를 갖는 라디오버튼

개요 위젯의 종류 - 2 클래스 개요 RadioGroup 복수의 라디오버튼 중 하나를 선택하는 버튼 그룹 ImageButton 이미지를 표시할 수 있는 누름 버튼 AnalogClock 현재 시각을 표시하는 아날로그 시계 DigitalClock 현재 시각을 표시하는 디지털 시계 Chronometer 경과 시간을 표시함 ProgressBar 기다리는 시간이나 경과 시간을 표시함 DatePicker 연월일을 달력에서 설정함 TimePicker 시각을 설정함 ZoomControls 이미지나 지도의 줌 레벨을 설정함

대표적인 위젯 TextView Label 표시 문자열의 입력, 출력, 편집, 포맷에 관련된 대부분의 기능을 포함 android:typeface – 활자체(폰트) normal, sans, serif, monospace 중에서 지정. android:textstyle – bold, italic 지정. 복수 적용 시 | 사용. (ex. "bold|italic") android:textColor android:text – Label 내용

대표적인 위젯 EditText 사용자로부터 텍스트를 입력받을 때 사용. TextView에서 파생된 것으로 EditText의 기능은 대부분 TextView에 구현되어 있으며, 편집과 관련된 속성들이 활성화 android:autoText – true일 경우 일반적인 스펠링 error를 잡아낸다. android:capitalize – none, characters, words, sentences값을 사용할 수 있으며 각각 사용자 결정, 모든 문자, 모든 단어의 시작 문자, 모든 문장의 시작 문자를 자동으로 대문자로 변환 android:digits – String 형식으로 지정된 토큰만 입력 가능 android:singleLine – false일 경우 복수 줄 허용

대표적인 위젯 버튼 사용자가 누르거나 클릭하여 명령을 내릴 수 있는 위젯 CheckBox 한 목록에서 여러 개를 선택할 때 흔히 사용 isChecked() – checkbox의 상태를 반환 setChecked(true/false) – checkbox를 check/unckeck 함. toggle() – checkbox를 toggle

대표적인 위젯 버튼 RadioButton 사용자가 여러 항목 중에서 하나만을 선택할 때 사용 CompoundButton을 상속. 사용 방법은 CheckBox와 거의 동일 RadioButton은 RadioGroup에 의해 여러 개가 한 묵음으로 사용 같은 RadioGroup 내부의 RadioButton은 한 번에 택일 가능. RadioButton은 CheckBox와 다르게 한번 check되면 사용자가 직접 unckeck 할 수 없음. RadioGroup 내부의 다른 RadioButton을 선택 하는 것으로 uncheck

대표적인 위젯 ImageView와 ImageButton 아이콘과 같은 임의의 이미지를 표시하기 위한 위젯 src maxWidth와 maxHeight tint

응용 예제 1 Widget1Demo

응용 예제 1 Widget1Demo

응용 예제 2 Widget2Demo 예제 3 Widget3Demo  

응용 예제 4 Widget4Demo 예제 5 Widget5Demo

레이아웃

개요 의미 필요한 위젯을 효과적으로 사용하고 개성있는 화면을 만들려면 적절한 레이아웃을 사용 뷰 혹은 위젯을 담고 위치를 제어하는 역할을 담당 View의 자손인 ViewGroup 클래스를 통하여 구현 뷰의 서브 클래스로 계층 구조 내의 하부에서 뷰 혹은 컨트롤들의 위치를 제어하는 역할을 담당 자바 프로그램을 통해서 정의될 수도 있지만 대부분 XML 레이아웃 파일에 따로 정의

개요 레이아웃의 계층도

개요 레이아웃 속성 뷰의 자손이므로 뷰의 속성을 상속 위젯을 화면에 배치하는 대부분의 속성은 모든 레이아웃에서 공통적으로 사용된다. 레이아웃의 속성은 일반적으로 layout_로 시작. 자식 뷰가 사용하는 경우 자신의 속성을 지정하기 보다는 부모 뷰인 레이아웃에게 자신의 위치를 지정 대표적인 속성: layout_weight layout_gravity layout_margin 등

선형 및 테이블 레이아웃 LinearLayout 위젯이나 다른 하위 컨테이너를 하나의 행 혹은 열 방향으로 나열 단순하지만 가장 사용 빈도가 높음 선형 레이아웃으로 개발자가 원하는 작업을 하려면 orientation, weight, gravity, padding 등의 특성을 활용 특히 orientation 속성은 뷰의 배치 방향을 결정하며 vertical과 horizontal로 지정할 수 있으며 기본값은 horizontal

선형 및 테이블 레이아웃 TableLayout 속성 열과 횡의 테이블 모습을 이용하여 나열 LinearLayout의 서브클래스 <TableRow> 는 테이블의 한 행을 의미 <TextView> 는 문자열을 출력하는 역할 <view>는 가로 구분선을 표시

절대 레이아웃 AbsoulteLayout 자식 뷰의 위치를 관계나 순서에 상관없이 절대 좌표로 표시하는 레이아웃 자식 뷰의 위치를 layout_x와 layout_y 속성을 사용하여 명시 단말기의 해상도나 방향 설정에 대하여 유연하지 못함 화면 전체가 아니라 일부 영역에 대한 세밀한 표시가 요구되는 상황에 한정하여 사용 폐기중

상대 레이아웃 RelativeLayout 속성 예 특정 내부 요소를 다른 내부 요소에 관련되어 위치 android:orientation android:layout_width android:layout_height android:layout_above android:layout_below android:layout_alignBaseline android:layout_alignBottom android:layout_alignLeft android:layout_alignRight android:layout_alignTop android:layout_toLeftOf android:layout_toRightOf 예

기타 레이아웃 FrameLayout ScrollView 가장 간단한 레이아웃으로 내부에 있는 뷰나 콘트롤들이 좌측 상단에 겹쳐서 차곡차곡 저장. 주로 탭(Tab)을 이용할 때 자주 사용 ScrollView RelativeLayout 클래스의 서브클래스 뷰 가장자리에 스크롤바가 생성