Android studio programming

(22.10.23)Android ν”„λ‘œκ·Έλž˜λ°:View ν΄λž˜μŠ€μ™€ View클래슀의 XML 속성

ν”„λ‘œκ·Έλž˜λ¨Έ μ˜€μ›” 2022. 10. 23.

μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€μ—μ„  μ•± 싀행화면을 κ΅¬μ„±ν•˜λŠ” μš”μ†Œλ₯Ό λ·°(view)라고 ν†΅μΉ­ν•œλ‹€. 이 λ·°μ—λŠ” ν…μŠ€νŠΈλ·°, λ²„νŠΌ, λΌλ””μ˜€λ²„νŠΌ, 이미지등이 μžˆλ‹€. 이듀 λͺ¨λ‘ ViewλΌλŠ” 클래슀의 상속을 λ°›λŠ”λ‹€. λ·° ν΄λž˜μŠ€λŠ” μœ„μ ―μ΄λΌκ³ λ„ ν•˜λŠ”λ°, λ²„νŠΌμ„ λ²„νŠΌ μœ„μ ―μ΄λΌ λΆ€λ₯΄κ³  μ‹€μ œ μ½”λ“œλŠ” λ²„νŠΌ 클래슀라고 λΆ€λ₯Έλ‹€. λ‹€λ₯Έ μœ„μ ―λ“€μ„ 담을 수 μžˆλŠ” μœ„μ ―μ„ λ ˆμ΄μ•„μ›ƒμ΄λΌ λΆ€λ₯΄λ©°, λ ˆμ΄μ•„μ›ƒλ„ 뷰그룹의 ν•˜μœ„ ν΄λž˜μŠ€λ“€μ΄λ‹€. λ ˆμ΄μ•„μ›ƒμ€ μœ„μ ―λ“€μ„ λ‹΄λŠ” 틀이라고 μƒκ°ν•˜λ©΄ λœλ‹€. 

였브젝트 클래슀λ₯Ό 상속받은 Viewν΄λž˜μŠ€λŠ”  ViewGroup ν΄λž˜μŠ€μ™€ TextView ν΄λž˜μŠ€μ™€ ImageViewν΄λž˜μŠ€μ™€ ProgressBar 클래슀 4κ°€μ§€λ‘œ λ‚˜λ‰œλ‹€.

ViewGroup ν΄λž˜μŠ€μ—λŠ” μ—¬λŸ¬ 레이 아웃 ν΄λž˜μŠ€μ™€ λ·°μ»¨ν…Œμ΄λ„ˆ ν΄λž˜μŠ€κ°€ 상속돼 μžˆλ‹€.


 

View 클래슀의 XML 속성

(22.10.23)Android ν”„λ‘œκ·Έλž˜λ°:View ν΄λž˜μŠ€μ™€ View클래슀의 XML 속성 - undefined - undefined - View 클래슀의 XML 속성

id 속성은 λͺ¨λ“  μœ„μ ―μ˜ 아이디λ₯Ό λ‚˜νƒ€λ‚΄λ©°, Java μ½”λ“œμ—μ„œ λ²„νŠΌ λ“±μ˜ μœ„μ ―μ— μ ‘κ·Όν•  λ•Œ id속성에 μ§€μ •ν•œ 아이디λ₯Ό μ‚¬μš©ν•œλ‹€. 일반적으둜 id속성은 μœ„μ ―μ— 아이디λ₯Ό μƒˆλ‘œ λΆ€μ—¬ν•˜λŠ” κ°œλ…μ΄λ―€λ‘œ @+id/ ν˜•μ‹μœΌλ‘œ μ§€μ •ν•œλ‹€./ λ‹€μŒμ—λŠ” μƒˆλ‘œ 지정할 아이디λ₯Ό λ„£λŠ”λ‹€. κ·ΈλŸ¬λ―€λ‘œ android:id="@+id/button1"은 λ²„νŠΌ μœ„μ ― μ•„μ΄λ””λ‘œ button1을 λΆ€μ—¬ν•œλ‹€λŠ” μ˜λ―Έμ΄λ‹€.

 

μœ„μ ―μ— μ ‘κ·Όν•˜κΈ° μœ„ν•΄ java μ½”λ“œμ—μ„  λ‹€μŒ 같은 ν˜•μ‹μ„ μ“΄λ‹€.

μœ„μ ― λ³€μˆ˜ = (μœ„μ ―ν˜•)findById(R.id.μœ„μ ―μ•„μ΄λ””);

(22.10.23)Android ν”„λ‘œκ·Έλž˜λ°:View ν΄λž˜μŠ€μ™€ View클래슀의 XML 속성 - undefined - undefined - View 클래슀의 XML 속성

λ²„νŠΌ, λΌλ””μ˜€λ²„νŠΌ, μ²΄ν¬λ°•μŠ€λ“±μ˜ μœ„μ ―λ“€μ€ 일반적으둜 클릭 λ˜λŠ” ν„°μΉ˜ν–ˆμ„ λ•Œ μ–΄λ–€ λ™μž‘μ„ ν•˜κΈ° μœ„ν•œ κ²ƒμ΄λ―€λ‘œ id속성을 μ§€μ •ν•œλ‹€. ν•˜μ§€λ§Œ ν΄λ¦­μ΄λ‚˜ ν„°μΉ˜λ₯Ό 해도 아무 λ™μž‘μ΄ ν•„μš” μ—†λŠ” κΈ€μž(ν…μŠ€νŠΈ λ·°)λ‚˜ λ°°κ²½ 이미지(이미지뷰)등은 ꡳ이 id속성을 μ§€μ •ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.


layout_width, layout_height 속성

μ΄λ‘˜μ€ 각각 μœ„μ ―μ˜ λ„ˆλΉ„μ™€ 높이λ₯Ό λ‚˜νƒ€λ‚΄λ©° match_parent, wrap_content κ°’μœΌλ‘œ μ„€μ •ν•  수 μžˆλ‹€.

match_parent은 말 κ·ΈλŒ€λ‘œ μžμ‹ μ˜ λΆ€λͺ¨ (λŒ€λΆ€λΆ„ λ ˆμ΄μ•„μ›ƒ)에 λ„ˆλΉ„λ‚˜ 높이λ₯Ό λ§žμΆ˜λ‹€λŠ” 의미이고 wrap_content은 κΈ€μžκ°€ κΌ­ λ“€μ–΄κ°ˆ μ •λ„λ‘œ μžμ‹ μ˜ λ„ˆλΉ„λ‚˜ 높이λ₯Ό μ„€μ •ν•œλ‹€λŠ” μ˜λ―Έμ΄λ‹€.

값을 μˆ«μžλ‘œλ„ μ •ν•  수 μžˆλŠ”λ° κ°€μž₯ λ‹¨μˆœν•œ 것이 px(PiXel)λ‹¨μœ„μ΄λ‹€.

λ§Œμ•½ λ²„νŠΌμ˜ 크기λ₯Ό κ°€λ‘œ μ„Έλ‘œκΈΈμ΄λ₯Ό 해상도 μ΅œλŒ€κ°’κ³Ό λ˜‘κ°™μ€ px둜 ν•˜μ—¬ μ„€μ •ν•œλ‹€λ©΄, layout_width=" match_parent" , layout_height="match_parent" μ„€μ •ν•œ 것과 λ˜‘κ°™μ΄ λ‘˜λ‹€ λΆ€λͺ¨ λ ˆμ΄μ•„μ›ƒμ˜ 크기와 λ˜‘κ°™μ•„μ§ˆ 것이닀.

 


background 속성

λ°±κ·ΈλΌμš΄λ“œ 속성은 μœ„μ ―μ˜ 색상을 주둜 #RRGGBBκ°’μœΌλ‘œ μ§€μ •ν•œλ‹€. 각 값은 빨간색, μ΄ˆλ‘μƒ‰, νŒŒλž€μƒ‰μ„ μ˜λ―Έν•˜λ©°, RR, GG, BB의 μœ„μΉ˜λŠ” 16μ§„μˆ˜ 00~FF둜 ν‘œν˜„ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 빨간색은 #FF0000으둜 νŒŒλž€μƒ‰μ€ #0000FF둜 μ§€μ •ν•œλ‹€. 값을 적절히 μ‘°ν•©ν•˜λ©΄ ν•„μš”ν•œ 색을 λ§Œλ“€ 수 μžˆλ‹€.

색상을 μ§€μ •ν•˜κΈ° μœ„ν•΄ #AARRGGBB 방식을 μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€. μ—¬κΈ°μ„œ AAλŠ” μ•ŒνŒŒ κ°’μœΌλ‘œ 투λͺ…도이닀.

00~FF둜 지정할 수 μžˆλŠ”λ° 00은 μ™„μ „νˆ¬λͺ…을 FFλŠ” μ™„μ „ 뢈투λͺ…을 μ΄μ•ΌκΈ°ν•œλ‹€.


padding, layout_margin 속성

padding 속성을 μ‚¬μš©ν•˜μ—¬ μœ„μ ―μ˜ κ²½κ³„μ„ μœΌλ‘œλΆ€ν„° μœ„μ ― μ•ˆμ˜ μš”μ†Œκ°€ λ–¨μ–΄μ§€κ²Œ μ„€μ •ν•  수 μžˆλ‹€. 기본적으둜 코딩을 ν•˜κ²Œ 되면 λ ˆμ΄μ•„μ›ƒ 내에 λ²„νŠΌλ“€μ΄λ‚˜ ν…μŠ€νŠΈ λ·° μœ„μ ―λ“€μ€ λ ˆμ΄μ•„μ›ƒ 경계선에 λ”± λΆ™μ–΄μ„œ ν‘œν˜„λ˜λŠ”λ°, padding속성을 μ‚¬μš©ν•˜λ©΄ λ ˆμ΄μ•„μ›ƒμ˜ 경계선과 μœ„μ ― 사이에 여백을 λ‘˜ 수 μžˆλ‹€.

λ‹¨μœ„λ‘œλŠ” dpλ₯Ό 주둜 μ“°κ³  

<LinearLayout
	 androidr:padding="20dp" >

이와 같이 μ“΄λ‹€. λ ˆμ΄μ•„μ›ƒμ΄ μ•„λ‹Œ λ²„νŠΌ μ•ˆμ— padding을 μ„€μ •ν•˜λ©΄ λ²„νŠΌ μ•ˆμ˜ κΈ€μžκ°€ λ²„νŠΌμ˜ κ²½κ³„μ„ μ—μ„œ 일정간격 λ–¨μ–΄μ Έμ„œ ν‘œν˜„λœλ‹€.

이와달리 μœ„μ ―κ³Ό μœ„μ ―μ‚¬μ΄μ— 간격을 두고 μ‹Άλ‹€λ©΄ layout_margin속성을 μ‚¬μš©ν•œλ‹€.

padding은 μžμ‹ μ˜ 내뢀에 λ“€μ–΄μžˆλŠ” μœ„μ ―κ³Ό μžμ‹ μ˜ 경계선 사이 간격을 μ§€μ •ν•˜κ³ , layout_margin 속성은 μžμ‹ κ³Ό λΆ€λͺ¨ λ ˆμ΄μ•„μ›ƒμ΄λ‚˜ μœ„μ ― μ‚¬μ΄μ˜ 간격 λ˜λŠ” μ£Όμœ„ λ‹€λ₯Έ μœ„μ ―κ³Όμ˜ 간격을 μ§€μ •ν•œλ‹€.

 

visibility속성

visibility μ†μ„±μœΌλ‘œ μœ„μ ―μ„ 보일 것인지 μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆλ‹€. 3가지 κ²½μš°κ°€ μžˆλŠ” λ””ν΄νŠΈμΈ visible λ³΄μ΄λŠ” μƒνƒœ invisibleκ³Ό gone은 μ•ˆ λ³΄μ΄λŠ” μƒνƒœμ΄λ‹€. 이 λ‘˜μ˜ μ°¨μ΄λŠ” invisible은 λ³΄μ΄μ§€λ§Œ μ•Šμ„ 뿐 μ›λž˜μ˜ 자리λ₯Ό 계속 μœ μ§€ν•˜μ§€λ§Œ, gone은 κ·Έ μžλ¦¬κΉŒμ§€ μ•„μ˜ˆ λ‚΄λ†“λŠ” 것이닀.

λŒ“κΈ€