안드로이드 인터페이스 기초 01- 뷰 (View)

Dora·2020년 10월 4일
0

Chap4. 안드로이드 인터페이스 기초01 - 뷰(View)

안드로이드 화면 구성

앱의 하나의 화면은 하나의 Activity가 관리하며, 화면은 ViewGroup과 Widget으로 구성된다.

ViewGroup, Widget ⊂ View

  • Activity
    : .java와 .xml 파일을 포함하며 .xml파일에는 view의 정의가 담겨있다.

  • View
    : 컨트롤이나 위젯이라는 이름으로 불리는 UI 구성요소로 사용자의 눈에 보이는 화면의 구성요소들이다.

  • Widget
    : 화면 입출력 요소를 표현하는 View. 일반적인 컨트롤 역할 (보여지는 것들).
    *https://developer.android.com/reference/android/widget/package-summary (밑에 있는 것들이 대표적)

//위 표는 상속관계를 나타낸 표로 ←upcasting / downcasting→
//CheckBox는 다중선택가능, RadioButton은 택1

  • ViewGroup
    : View들을 여러 개 포함하고 있어, 위젯이나 View들의 grouping과 배치가 가능하다. 뷰 그룹은 뷰와 다르지만 뷰가 될 수 있다. (하...)
    - https://developer.android.com/reference/android/view/ViewGroup
    - 레이아웃 : 뷰그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할을 하는 것. 직접 노출 X, 상호 작용X
    // 과거에는 LinearLayout이 기본이었으나 현재는 constraintLayout이 기본이다. (표에는 없음)

+) View는 주로 XML로 선언하나 java code에서 직접 작성도 가능하다.

++) 위젯은 class로 존재할 수 없으나, 뷰그룹은 class로 존재할 수 있다. (class라는 표현이 맞는지는 모르겠다) 그러므로 widget안에 widget을 넣을 때는 그 사이에 viewgroup이 있어야 한다는 말.


View 공통 속성

ID

: 특정 뷰를 참조하기 위한 식별정보
; 뷰 객체의 메모리 상 포인터 같은 개념으로 생각할 수 있다.

ex. TextView의 id

<Design 창일 경우>
Arributes에서 id를 찾아 기입.

<XML 창일 경우>

<TextView
        android:id="@+id/textView1"/>

//@뒤에 +는 id를 새로 지을 때만 붙인다


layout_width / layout_height

: 뷰 그룹 안에서의 크기 지정.
; 상수값, match_parent나 wrap_content를 이용할 수 있다.

  • 상수값
    : 가능하면 논리 단위를 사용하는 것이 권장된다.(기기별 해상도 차 때문)
    - dp(density-independent pixel) : View 크기 지정 시 사용.
    - sp(scale-independent pixel) : 폰트 크기 지정 시 사용.
    +) 이것말고도 다른 단위를 사용해도 되긴하지만 권장되진 않음.
  • match_parent
    : view를 담겨 있는 뷰그룹 크기에 맞춘다. (여유공간만큼 늘림)

  • wrap_content
    : 담고 있는 항목의 크기에 맞춘다.


Padding

: 뷰와 내용물 사이의 간격

ex. 버튼 안의 텍스트. 버튼 테두리와 텍스트 사이의 간격.


그 외

  • background : 뷰의 배경 지정 (색상, 속성(visible/invisible/gone) 등)
  • visibility : 가시성 결정
  • clickable / longClickable
  • focusable : 키보드 입력 가능 여부
profile
Lv.1 개발자

0개의 댓글