200 likes | 474 Views
6. 주요 사용자 인터페이스 화면 구성 요소. 뷰 & 위젯. View Android.view.view 클래스 직사각형의 위젯과 레이아웃의 기반 클래스 Widzet Android.widget 클래스 ImageView , Layout, EditText 등 . 대부분 View 클래스에서 파생. TextView. 기능 화면에 텍스트 그리기 상속관계 View 의 파생클래스 문맥 링크 추가 autoLink (web, email, phone, map) | 를 통하여 복수선택가능
E N D
뷰& 위젯 • View • Android.view.view클래스 • 직사각형의 위젯과 레이아웃의 기반 클래스 • Widzet • Android.widget클래스 • ImageView, Layout, EditText등. • 대부분 View 클래스에서 파생
TextView • 기능 • 화면에 텍스트 그리기 • 상속관계 • View의 파생클래스 • 문맥 링크 추가 • autoLink (web, email, phone, map) • | 를 통하여 복수선택가능 • 모든기능= all , 모든기능X=none(기본값)
EditText • EditText • TextView에사 파생 • 힌트 기능 • 기본 컨텍스트메뉴 지원 • 적용 • 이벤트 발생시 getText()메소드로 데이터 추출 • 수정 가능한 입력필드 제공
자동 완성 기능 • AutoCompleteTextView • 사용자 지정 자동 완성 기능 • 데이터 배열 생성 -> ArrayAdapter에 인수로 추가 ->AutoCompleteTextView의 인스턴스에 어댑터 연결 • AutoCompleteTextView특별한 속성 • completionHint : 도움말 • completionThreshold= 자동완성을 적용할 글자 수 • 주소록, 검색 등에 사용
자동 완성 기능 • MultiAutoCompleteTextView • AutoCompleteTextView와 같은기능 + 여러항목구분 • Tikenizer를 사용하여 토큰 형성 • MultiAutoCompleteTextView의 인스턴스에 setTokenizer() 메소드를 호출하고 메소드의 인수로 내장 및 사용자지정 Tokenizer를사용
필터를 이용한 입력 제한 • 잘못된 입력을 방지하기 위한 필터 • EditText위젯에 필터객체 적용 • InputFilter인터페이스를 이용하여 filter()메소드를오버라이딩 • Sdk기본지원 • 대문자로 고처주는 필터 • 텍스트의 길이를 제한하는는 필터 (예전방식)
Spinner위젯에제한걸기 • 사용자의 편의성과 입력값의 범위를 제한하기위하여Spinner 사용 • 스피너의 목록은 xml을 이용하여 Spinner 위젯에 적용 • 선택된 값을 가저오는 방법?
Button • Button • 데이터 전송 및 페이지 이동을 위한 유저 인터페이스 • Yes, no , ok 등 기본 문자열 지원 • 패키지 : android.widget.Button • 적용 : setonClickListener를 통하여 해당 버튼이 눌렸을시 발생하는 이벤트를 제어한다. • 버튼이 이미지를 필요로 하면 ImageButton을 사용
체크 박스와 토글 버튼 • 체크박스 • 여러 개의 항목들을 선택시 사용 • 버튼과 같이 버튼클릭시의 이벤트 등을 포함 • 체크버튼 인스턴스의isChecked()메소드를 통하여 체크된 버튼에 대한 이벤트 처리 • 토글 버튼 • 체크박스형태로 On/Off 를 나타내는 기능 • 버튼안에상태가표시됨
라디오 버튼과 그룹 • 라디오 버튼 • 다중항목중 특별한 한 개의 항목을 선택할때 사용 • 하나의 항목이 선택되면 기존의 선택되어있던 버튼은 해제됨 • 전체항목 모두가 선택이 되지 않도록 설정 가능 • 주로 다중 항목중 선택하거나 값이 정확해야 할때 사용
날짜와 시간 선택 • DataPicker • 날짜와 시간을 편리하게 선택할 수 있도록 도와줌 • DataPicker의 인스턴스 생성-> 4번째 인수로 DataPicker.OnDateChangedListener()를 호출 -> onDateChanged메소드를 • TimePicker • DataPicker와 달게 콜백 메소드를 직접 등록 • SetOnTimeChangeListener메소드를 사용
ProgressBar • 상태의 진행을 알리기 위한 상태바 • 크기에 따라서 3가지 종료를 지원 • Max값을 지정하여 최대값을 설정 가능 • setProgress를 이용하여 가로 상태바를진행상황별 바의 크기를 지정할 수 있다. • 쓰레드를 통하여 값을 변경해야 전체적인 위젯의 작동이 원활
SeekBar • SeekBar • 일반적인 가로 바를 사용자가 지정한 위치로 이동시킴이 가능한 위젯 • 동영상의 진행 위치 변경 및 • onProgressChanged()를 이용하여 현제 바뀐 값의 정보를 가져올 수 있다. • FromTouch변수를사용하여 값을변화된 이유를 알 수 있고, 2차진행 표시줄로의 표시가 가능
Chronometer • 진행정도를 시간으로 보여주기 위한 위젯 • Start()메소드로 호출, stop() 메소드로 정지 • 일반적으로 해당 어플을실행한 시간이 기준이됨
메뉴 구성하기 • 휴대폰의 Menu 버튼을 눌렀을때 실행되는 기능 • OnCreateOptionMenu를 통하여 메뉴 등록 • setIcon으로 해당 메뉴의 아이콘을 지정하고 setIntent를통하여 새로 그려질 인텐트 정의 • 실제로 메뉴 적용시 문자열 자원 참조 및 final 키워드를 이용한 int값으로 정의 • subMenu를 통하여 체크 가능한 메뉴를 만들고onOptionsItemSelected를 정의하여 원하는 이벤트를 수행
컨텍스트 메뉴 • 해당 위젯을 오랫동안 눌렀을때 나타나는 메뉴 • onCreateContextMenu()메소드를 이용하여 컨텍스트메뉴 생성 • 해당 위젯마다 가지고 있는 이벤트가 다르기 때문에 가각ㄱregisterForContextMenu()를 통하여 지정 • onCreateContextMenu()메소드를 통하여 해당 컨텍스트 메뉴의 이벤트를 실행
터치모드의 변경 감지 • 핸드폰 내에서 터치의 유무를 인식하고 이벤트를 여는 기능 • 터치모드와 비터치모드 • ViewTreeObserver의 인스튼스를 얻고, addOnTouchModeChangeListener를 이용하여 터치 감시 • 상위 위젯혹은뷰를 설정하면 해당 위젯의 자식요소에 대한 터치유무도 함께 알수있다.
스타일 다루기 • 공통적인 뷰위젯특성값 • 하나의 스타일정의로 여러 개의 개별뷰들에 적용가능 • Style.xml 파일에 정의 • <resource>요소와 그 안의 <style>로 지정
테마 다루기 • 개별 위젯 뿐만 아니라 모든 View에 적용되는 특성 집합 • 본질적으로 하나의 스타일이며 단지 화면 전체에 적용된다는 점이 특징 • 여러 개의 테마 적용 가능 • setThema메소드를 이용하여 적용 • AndroidMainfest.xml에서 테마 적용 가능