본문 바로가기
Programming/Android

3장.사용자 인터페이스

by jaegom 2020. 5. 28.

UI의 기본구조 - 액티비티와 뷰 클래스

-안드로이드 4대 컴포넌트 중 액티비티만이 유일하게 화면을 출력한다 ->런타임 때 액티비티 컴포넌트 무조건 실행

-액티비티는 setContentView() 함수로 View 클래스로 화면을 출력. ex) setContentView(View view);

-기본적으로 하나의 화면엔 하나의 액티비티이며, 분할 화면으로 예외를 만들 수는 있다.

-layout.xml을 사용하지 않고, 프로그램 구동과 더불어 UI도 Java로 작성이 가능하지만 코드가 너무 길어져서 xml로 리소스 외부화를 한다.

 

View의 기본 속성

-id : 필수 속성은 아니다. View 객체를 코드에서 이용하기 위해 부여하는 식별자 속성이며, id 부여 시 리소스가 아님에도 R.java에 등록된다.

-findViewById(R.id.myText) : 자바 코드에서 id로 뷰 객체를 가져오는 함수

-layout_width, layout_height -> match_parent, fill_parent, wrap_content, 100dp

-margin : 뷰 간 거리 ->layout_marginLeft, layout_marginRight, layout_marginTop, layout_marginBottom

-padding : 뷰 내부의 공간, 뷰의 컨텐츠가 패딩을 입었다고 생각..->paddingLeft, paddingRight, paddingTop, paddingBottom

-clickable : 버튼 이외 이미지뷰 등에 클릭 속성 부여, true

-visibility : android:visibility='gone' // 자바코드에서 setVisibility로 조건 걸기 가능.

 

View 아키텍쳐

-계층구조로 DOM(Document Object Model)을 따른다. 패턴으로는 Gof디자인의 Composite 패턴

ex) ViewGroup1 -> ViewGroup2 -> View

-계층구조는 XML에서 태그의 상하 관계 사용 (자바코드는 addView() 함수)

 

TextView

-text : 글

-typeface : 폰트 -> 임의폰트 가능 ex) setTypeface

-textStyle, textColor, textSize, autoLink

-maxLines : 특정 줄 개수만큼 개행허용

-ellipsize : maxLines 이후 줄임말 표시

 

ImageView

-src : 디렉터리 위치

-maxWidth, maxHeight : 출력할 이미지의 최대크기

-adjustViewBounds : 이미지 크기 변경 시 가로세로 비율 유지 여부(true, false)

-tint : 이미지에 색깔 입히기, 16진수로 지정

 

EditView

-TextView 상속받음

-lines : lines='3'이면 화면에서 애초에 3줄짜리 칸으로 표시

-maxLines : maxLines = '3'이면 3줄까지 늘어남

-inputType : text, phone, number, textEmailAddress, textPassword 등 전용 키보드 설정. text는 default지만 줄바꿈이 불가능하게 한다.

 

Button

-TextView의 서브 클래스, 대표적인 clickable view

 

Checkbox

-isChecked() : 상태반환 ->true, false

-setChecked() : 체크변환

-toggle : 반전시키기

-OnCheckedChangeListener : 체크 상태가 바뀌는 순간을 파악하여 이벤트 처리하는 함수

 

RadioButton

-check() : 버튼의 id를 매개변수로 주면 체크상태로 바꿈

-clearcheck() : 버튼그룹의 id를 주면 전해제

-getCheckedRadioButtonId

 

 

 

 

 

 

 

 

댓글