λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Study/Android

[μ•ˆλ“œλ‘œμ΄λ“œ μ½”ν‹€λ¦°] 4. λ ˆμ΄μ•„μ›ƒ(1) - λ·°

λ ˆμ΄μ•„μ›ƒ

 

λ·°(View)

- View 클래슀의 μ„œλΈŒν΄λž˜μŠ€λ‘œ λ§Œλ“  객체λ₯Ό λœ»ν•¨

- μ•‘ν‹°λΉ„ν‹° 화면은 ν•œ 개 μ΄μƒμ˜ 뷰둜 ꡬ성

- 크게 두 μ’…λ₯˜μœΌλ‘œ λ‚˜λˆ” (λ ˆμ΄μ•„μ›ƒ, μœ„μ ―)

 

μœ„μ ―(Widget)

- λ²„νŠΌ, λΌλ””μ˜€λ²„νŠΌ, 이미지 λ“± ν™”λ©΄μ—μ„œ μ‚¬μš©λ˜λŠ” 것

- View λ˜λŠ” ViewGroup의 μ„œλΈŒν΄λž˜μŠ€λ‘œμ„œ λ‹¨λ…μœΌλ‘œ μ‚¬μš©

μ½”ν‹€λ¦°μ˜ μ΅œμƒμ˜ 클래슀: Any (Java의 Object와 μœ μ‚¬)

 

λ ˆμ΄μ•„μ›ƒ(Layout)

- λ‹€λ₯Έ μœ„μ ―μ„ λ‹΄μ•„ λ°°μΉ˜ν•˜λŠ” ν‹€

    - μ—¬λŸ¬ 개의 λ·°λ₯Ό κ·œμΉ™λŒ€λ‘œ 화면에 배치

- ViewGroup의 μ„œλΈŒν΄λž˜μŠ€

 

View 클래슀 계측도

 

 

View 클래슀의 XML 속성

λ²„νŠΌμ˜ XML 속성

- λ²„νŠΌμ˜ XML 속성이 거의 μ—†μŒ

- λŒ€κ°œ μƒμœ„ 클래슀인 TextViewλ‚˜ Viewμ—μ„œ μƒμ†λ°›μŒ

- https://developer.android.com/reference/packages μ—μ„œ 속성 확인 κ°€λŠ₯

 

id 속성

- λͺ¨λ“  μœ„μ ―μ˜ 아이디λ₯Ό λ‚˜νƒ€λƒ„

    - ν„°μΉ˜ν–ˆμ„ λ•Œ μ–΄λ–€ λ™μž‘μ΄ ν•„μš”ν•œ 경우 id 지정함

- 일반적으둜 id 속성은 μœ„μ ―μ— 아이디λ₯Ό μƒˆλ‘œ λΆ€μ—¬ν•˜λŠ” κ°œλ…

    - ‘@+id/’ ν˜•μ‹

        - / λ‹€μŒμ—λŠ” μƒˆλ‘œ 지정할 idλ₯Ό λ„£μŒ

        - android:id =“@+id/button1” : λ²„νŠΌ μœ„μ ―μ˜ μ•„μ΄λ””λ‘œ button1을 뢀여함

- Kotlin μ½”λ“œμ—μ„œ λ²„νŠΌ λ“±μ˜ μœ„μ ―μ— μ ‘κ·Όν•  λ•Œ id 속성에 μ§€μ •ν•œ 아이디λ₯Ό μ‚¬μš©

μœ„μ ― λ³€μˆ˜ = findViewById<μœ„μ ―ν˜•>(R.id.μœ„μ ―id)

var button1: Button
button1 = findViewById<Button>(R.id.button1)

 

layout_width, layout_height 속성

- λͺ¨λ“  μœ„μ ―μ— ν•„μˆ˜λ‘œ 듀어감

- layout_width은 λ²„νŠΌμ˜ λ„ˆλΉ„, layout_heightλŠ” λ²„νŠΌμ˜ 높이에 λŒ€ν•΄ 적용됨

- 속성 κ°’μœΌλ‘œλŠ” μ•„λž˜μ˜ μ„Έ 가지 쀑 ν•˜λ‚˜μ˜ κ°’μœΌλ‘œ μ„€μ •ν•  수 있음

    - wrap_content : λ²„νŠΌμ˜ λ„ˆλΉ„λ‚˜ 높이가 κ·Έ μ•ˆμ˜ κΈ€μžμ™€ κΌ­ λ§žλŠ” 크기가 됨

    - match_parent : λ²„νŠΌμ˜ κΈ€μžμ™€ 관계없이 λ²„νŠΌμ„ μ‹Έκ³  μžˆλŠ” λΆ€λͺ¨(λ ˆμ΄μ•„μ›ƒ)에 꽉 μ°¨λŠ” 크기가 됨

- 값을 숫자둜 직접 μ§€μ •ν•˜λŠ” 경우 → dp(Density-Independent Pixels), sp(Scale-Independent Pixels)

dp: κΈ°κΈ° λΉ„μŠ·ν•˜κ²Œ 적용되길 원할 λ•Œ → μΉ˜μˆ˜ μœ„μΉ˜ 크기 λ“± μœ„μ ―의 크기λ₯Ό 지정할 λ•Œ μ‚¬μš©
sp: μ•ˆλ“œλ‘œμ΄λ“œ osμ—μ„œ 글씨 λ°”κΏ€ λ•Œ 적용됨  ν…μŠ€νŠΈ 크기 지정할 λ•Œ μ‚¬μš©

[μ°Έκ³ ] https://developer.android.com/training/multiscreen/screendensities

 

background 속성

- 뷰의 λ°°κ²½, μœ„μ ―μ˜ 색상을 지정함

- 주둜 #RRGGBB κ°’μœΌλ‘œ 지정

    - 각 값은 빨간색, μ΄ˆλ‘μƒ‰, νŒŒλž€μƒ‰μ„ μ˜λ―Έν•¨

    - RR, GG, BB의 μœ„μΉ˜λŠ” 16μ§„μˆ˜ 00~FF둜 ν‘œν˜„ν•  수 있음

 

λ§ˆμ§„(margin) 속성

- μ™ΈλΆ€ μ—¬λ°±, 즉 뷰와 λΆ€λͺ¨ λ·° μ‚¬μ΄μ˜ 곡간

- ν•΄λ‹Ή 여백은 λ·° μžμ‹ μ˜ μ˜μ—­μ— ν¬ν•¨λ˜μ§€ μ•ŠμŒ

 

νŒ¨λ”©(padding) 속성

- λ‚΄λΆ€ μ—¬λ°±, 즉 뷰와 뷰의 λ‚΄μš©λ¬Ό μ‚¬μ΄μ˜ 곡간

- ν•΄λ‹Ή 여백은 λ·° μžμ‹ μ˜ μ˜μ—­μ— 포함됨

 

visibility 속성

- μœ„μ ―μ„ 보일 것인지 μ—¬λΆ€λ₯Ό 결정함

- visible : λ””ν΄νŠΈλ‘œ μ„€μ •λ˜μ–΄ 있으며, λ³΄μ΄λŠ” μƒνƒœ

- invisible : μ•ˆ λ³΄μ΄λŠ” μƒνƒœμ΄μ§€λ§Œ, 보이지 μ•Šμ„ 뿐 μ›λž˜μ˜ 자리λ₯Ό 계속 μœ μ§€ν•¨

- gone : μ•ˆ λ³΄μ΄λŠ” μƒνƒœμ΄λ©°, μ›λž˜μ˜ μžλ¦¬κΉŒμ§€ 사라짐

 

enabled, clickable 속성 

- XML 보닀 Kotlin μ½”λ“œμ—μ„œ 주둜 μ‚¬μš©λ¨ 

- 값은 true와 false이며 λ””ν΄νŠΈ 값은 trueμž„

- enabled 속성 : μœ„μ ―μ˜ λ™μž‘ μ—¬λΆ€

- clickable 속성 : ν΄λ¦­μ΄λ‚˜ ν„°μΉ˜κ°€ λ™μž‘ μ—¬λΆ€