View
- 유저 인터페이스를 구성하는 구성요소
- 버튼, 텍스트, 위젯 등...
public class View extends Object implments Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource |
- View Group : 여러 뷰들로 구성되어 있는 컨테이너
- Layout : 뷰를 정렬하는 뷰 그룹
- 뷰를 어떻게 분배시킬 것인지, 뷰를 상속받아서 구성된다.
- Widget : 제어 역할을 하는 뷰
- 뷰를 기능적인 부분으로 바라봄
View Group
- 여러 뷰(자식)를 가지고있는 특별한 뷰
- 뷰를 상속받아서 구현된다.
- java.lang.Object > android.view.View > android.view.ViewGroup
- 뷰를 묶어서 뷰 그룹이라고 한다.
- 뷰 그룹 자체도 하나의 뷰처럼 지정할 수 있다.
public abstract calss ViewGroup extends View implements ViewParent, ViewManager |
Layout
- activity 같은 유저 인터페이스 구조를 정의한다.
- 레이아웃의 모든 요소는 View 및 ViewGroup 개체의 계층 구조를 사용하여 구축된다.
- 계층화 : 다른 레이아웃 아래에 레이아웃을 배치할 수 있다.
- 그러나 중첩 수준이 너무 깊어지면 시스템 과부하가 생길 수 있다..
<LinearLayout android:orientation="vertical"> <ImageView /> <LinearLayout android:orientation="horizontal"> <TextView /> <TextView /> </LinearLayout> </LinearLayout> |
Widget
- 특별한 기능(control)을 가지고 있는 뷰
- 텍스트, 이미지, 버튼
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { TextView textView1 = (TextView) findViewById(R.id.text1) ; textView1.setText("Text is changed.") ; } } |
뷰 속성
- 엄청나게 많은 속성을 가진다.
Visibility
imageView.setVisibility(View.VISIBLE); | 이미지를 보여줌 |
imageView.setVisibility(View.INVISIBLE); | 이미지를 숨김(영역유지) |
imageView.setVisibility(View.GONE); | 이미지를 숨김(영역도 없앰) |
크기 (width, height)
- 뷰의 필수 속성
- 가로 크기(layout_width) / 세로 크기(layout_height)
- 속성을 제거하면 오류 발생
match_parent | 부모의 뷰에 맞추기 |
wrap_parent | 내용의 크기에 맞추기 |
value | 원하는 특정 값 부여 |
layout_witdth : wrap_content layout_height : wrap_content |
layout_witdth : match_content layout_height : wrap_content |
![]() |
![]() |
layout_witdth : wrap_content layout_height : match_content |
layout_witdth : match_content layout_height : match_content |
![]() |
![]() |
박스
- 뷰 위치(positioning) 관리
- Margin : 박스 바깥쪽
- Padding : 박스 안쪽
Margin | Padding |
뷰 테두리 외부의 추가 공간을 정의 두 뷰 사이에 추가 공간을 만드는 데 사용 뷰 테두리 외부의 레이아웃에 영향을 준다. 뷰의 배경색에 영향을 받지 않습니다. |
뷰 테두리 내부의 추가 공간을 정의 뷰 내용 주위에 추가 공간을 만드는 데 사용 뷰 테두리 내부의 레이아웃에 영향을 준다. 뷰의 배경색에 영향을 받는다. |
배경(Background)
- ARGB(Alpha/Red/Green/Blue) 16비트 16진수 값
- 앞에 '#' 기호
android:background="#D61818" |
'모바일프로그래밍' 카테고리의 다른 글
[모바일 프로그래밍] 8. Drawable (0) | 2023.11.09 |
---|---|
[모바일 프로그래밍] 6. Layout (0) | 2023.11.08 |
[모바일 프로그래밍] 4. 버튼 기능 (0) | 2023.11.08 |
[모바일 프로그래밍] 3. 안드로이드 스튜디오 설치 및 실행 (0) | 2023.09.15 |
[모바일 프로그래밍] 2. 안드로이드 OS (0) | 2023.09.15 |