안드로이드의 기본 위젯의 종류에는 다음과 같은 것들이 있다.
레이블,버튼,이미지,입력필드,체크박스,라디오버튼,뷰...
1.레이블
안드로이드에서 레이블은 TextView 클래스로 구현된다.
일반 GUI 툴킷처럼 레이블은 고정된 텍스트를 화면에 표시한다.
속성에는 다음과 같은것들이 있다.
android:text - 표시할 글을 지정
android:typeface - 글꼴 종류를 지정
android:textStyle - bold(굵은),italic(기울인),bold l italic(굵고 기울인) 글꼴 지정
android:textColor - 텍스트의 색깔을 지정
2.버튼
버튼은 TextView 클래스를 상속 받는다.
결국 버튼에서도 TextView의 모든 인터페이스가 사용 가능하다.
3.이미지
안드로이드에서 이미지를 간단하게 올릴 수 있는 방법으로 두가지 위젯을 제공한다.
ImageView 클래스와 ImageButton 클래스가 있다.
두 클래스 모두 android:src 속성으로 어떤 이미지를 사용할 지 지정해야 한다.
보통 이미지의 내용은 대부분 res/drawable 디렉토리에 들어간다.
외부 컨텐트의 경우 setImageUri() 메소드로 지정도 가능하다.
지원되는 포맷은 PNG, JPEG, GIF 등이다.
4.입력 필드
버튼, 레이블과 함께 입력필드 역시 GUI 툴킷의 핵심이다,
안드로이드 SDK 에서는 EditText라는 클래스로 구현되어 있다.
EditText 역시 TextView의 하위 클래스이므로 TextView 클래스의 인터페이스를 사용가능하다.
또 다음과 같은 속성도 추가적으로 가지고 있다.
android:autoText - 자동 철자 교정 기능 사용 유무
android:capitalize - 입력된 텍스트 첫글자를 대문자로 할 것인지
android:digits - 특정 숫자만 입력받게 제한 할지의 여부
android:singleLine - 한 줄자리 텍스트, 도는 여러줄 짜리 입력인지 결정
5.체크 박스
CheckBox 역시 TextView 클래스의 하위 클래스로 TextView의 인터페이스 모두를 사용할 수 있다.
또 CheckBox의 속성은 자바에서 다음과 같은 메소드로 활용 가능하다.
isChecked() - 현재 체크되었는가 여부
setChecked() - 체크박스의 상태지정
toggle() - 체크박스의 체크 상태 변경
CheckBox의 상태에 따라 다른 행동을 취하고 싶다면 이벤트 리스너를 달아야한다
이때 사용하는 인터페이스는
CompoundButton.OnCheckedChangeListener() 이다.
CompoundButton 역시 CheckBox의 상위 클래스이다.
6.라디오 버튼
안드로이드 SDK의 라디오 버튼 역시 체크박스처럼 두개의 상태를 가지고 버튼 여러개를 그룹으로 묶어 하나만 선택 가능하게 할 수 있다.
라디오 버튼 역시 CompoundButton 클래스를 상속 받았고, 더 상위에서는 TextView 클래스를 상속받았다.
따라서 TextView 클래스의 인터페이스를 사용 가능하며 체크박스처럼 isChecked() 메소드 등이 사용가능하다.
RadioButton 클래스는 여러개의 인스턴스를 RadioGroup 클래스로 묶어서 사용한다.
각 RadioButton 마다 아이디를 지정하면 다음과 같은 자바코드로 라디오 버튼값 확인이 가능하다.
check() - 특정 ID의 라디오 버튼 체크
clearCheck() - 특정 ID의 라디오 버튼 체크해제
getCheckedRadioButtonId() - 현재 선택된 라디오 버튼 아이디 반환
7. 뷰
지금까지 살펴본 위젯은 모두 View 클래스를 상속받는다.
View 클래스는 개별 위젯에서 소개하지 않은 여러가지 유용한 기능이 있다.
//입력포커스 관련
android:nextFocusDown
android:nextFocusLeft
android:nextFocusRight
android:nextFocusUp
//화면 표시 여부
android:visibility
//배경 색
android:background
//자바에서의 유용한 메소드
//특정 위젯 사용여부
inEnabled() - 사용 가능 여부
setEnabled() - 사용 여부 설정
//포커스 변경
requestFocus() - 입력포커스를 해당 위젯으로 옮겨옴
isFocused() - 포커스를 갖고 있는지
setFocus() - 포커스 설정
//위젯과 컨테이너 검색
getParent() - 상위 위젯 알려줌
findViewById() - 아이디에 해당하는 위젯을 찾아줌
getRootView() - 최상위 컨테이너를 찾아줌
'Android' 카테고리의 다른 글
안드로이드 리스트 뷰 (0) | 2012.08.01 |
---|---|
안드로이드 어댑터 뷰 (0) | 2012.08.01 |
안드로이드 리소스, 에셋 (0) | 2012.07.31 |
안드로이드 메뉴 (0) | 2012.07.31 |
안드로이드 입력 (이벤트) 4 (0) | 2012.07.31 |