티스토리 뷰

학교공부

안드로이드를 자바라

세댕댕이 2021. 10. 15. 11:25

중간고사 시험 공부용 2

 

이런 암기식 시험 별로 안좋아하는데,, 필요하면 검색해보고 쓰면 되는데 말이지..

썩 마음에 들지 않지만 해야지 어떡하겠나..

 

----

 

뷰(View)

- 화면에 보이는 모든 요소는 뷰.

- 사용자가 보고 상호작용할 수 있는 것을 그린다.

 

뷰 그룹(View Group)

- 뷰를 여러개 담을 수 있는 그룹.

- 객체의 레이아웃 구조를 정의하는 보이지 않는 컨테이너. 뷰를 화면에 배치하는 역할.

- 뷰 그룹은 뷰를 상속받는다. 따라서 뷰 그룹도 뷰처럼 다뤄질 수 있다.

 

레이아웃(Layout)

- 뷰 그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할. 

- 레이아웃은 뷰 그룹을 상속받는다. 레이아웃 -> 뷰 그룹 -> 뷰. => 레이아웃도 결국 뷰 클래스.

사실상 뷰 그룹 = 레이아웃이다.

- FrameLayout, RelativeLayout, LinearLayout 등... 하나 이상 존재한다.

 

위젯(Widjet)

- 뷰 중에서 일반적인 컨트롤의 역할을 하고 있는 것

- 버튼, 텍스트 등..

- 보이지 않는 레이아웃을 제외하고, 시각적으로 보이는 뷰들은 사실상 모두 위젯이라고 봐도 무방할 듯 싶다.

 

 

 

[layout_width, layout_height 설정]

1. match_parent: 부모 레이아웃 크기에 맞추세요

2. wrap_content: 뷰 컨텐츠의 크기에 맞추세요

3. 수동 조정: 고정 크기(dp, px 단위 사용) 

 

width, height = wrap_content
width = match_parent
width, height = match_parent

 

 

[ConstraintsLayout]

- 이전의 RelativeLayout을 대체하여 나온 것 같다.

- 뷰를 배치하기 위해서 양옆 중 하나, 위아래 중 하나 이상 Constraint를 연결해줘야한다.

 

 

[XML 레이아웃 코드에서 접두어의 의미]

xmlns:android = 안드로이드 기본 SDK에 포함되어있는 속성 사용

xmlns:app = 프로젝트에서 사용하는 외부 라이브러리에 포함되어있는 속성 사용

xmlns:toos = 안드로이드 스튜디오 디자이너 도구 등에서 화면에 보여줄 때 사용

- 앱이 실행될 때는 적용되지 않음. 안드로이드 스튜디오에서만 동작.

 

 

[뷰의 단위 표현]

px: pixel. 화면을 구성하는 최소 단위. 절대적 단위.

dp: Density independent pixel

- 모바일 기기마다 해상도도 제각각이고 픽셀의 수도 제각각이다.

- 이를 고려해서 통일성 있는 앱 제작을 위해 탄생한 것이 dp 단위. 화면의 크기가 달라도 동일한 비율로 보여주기 위함.

- px는 쓰지 말고 dp를 쓰는 것이 바람직하다.

 

+) DPI: Dots per Inch. 1인치당 픽셀 수. DPI가 높을수록 1인치에 더 많은 픽셀이 들어간다-> 이 상황에서 px 단위로 앱을 디자인하면 내 의도와는 전혀 다른 디자인이 출력될 수밖에 없다.

 

em: 텍스트 크기. 부모 요소의 크기에 영향을 받아 상대적으로 크기가 변한다.

ex) 0.8em = 부모 요소 폰트의 크기가 10px 이라면 0.8em은 8px 폰트가 된다.

 

 

[Button]

 

 

대표적으로 많이 쓰이는 Button 위젯. TextView를 상속받는다.

 

<Button
    android:id="@+id/btn_clock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:padding="10dp"
    android:text="시계" 
/>

 # ID 속성

- id 속성은 모든 위젯의 ID를 나타낸다.

- "@+id/[아이디]" 형식으로 지정한다.

- 아이디를 지정해줘야 코드에서 findViewByID(R.id.btnID) 방식으로 버튼을 불러와 원하는 동작을 설계할 수 있다

 

# Padding과 Margin

 

Content - 실제 컨텐츠

Padding - 컨텐츠 내부(컨텐츠와 테두리 사이) 여백

Border - 컨텐츠의 경계선. 테두리. 여기까지가 컨텐츠의 총 범위.

Margin - 컨텐츠 외부 여백

 

Margin = [10dp, 10dp, 10dp, 10dp] = 상, 하, 좌, 우 10dp씩 거리를 벌려라

+ 상하좌우 간격이 모두 같으면 그냥 layout_margin=10dp 식으로 바로 한방에 지정해도 된다.

 

 

 

 

[Visibility 속성]

Visible: 보이는 상태

Invisible: 보이지 않으나 원래의 자리를 유지한다.

gone: 보이지 않고 원래의 자리도 사라진다.

 

android:visibility="invisible"

 

[Clickable 속성]

enabled: 위젯의 동작 여부

clickable: 클릭이나 터치가 가능하도록 함 (true/false)

 

 

# 레이아웃의 종류

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함