๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Android/Android Studio

[Android] 18. ์œ„์ ฏ : XML ์ฐธ๊ณ (์—˜๋ฆฌ๋จผํŠธ, ์ฃผ์„๋ฌธ), ํ…์ŠคํŠธ๋ทฐ

by A Lim Han 2023. 1. 10.

# ์œ„์ ฏ : XML ์ฐธ๊ณ (์—˜๋ฆฌ๋จผํŠธ, ์ฃผ์„๋ฌธ), ํ…์ŠคํŠธ๋ทฐ

 

 

# ์œ„์ ฏ : XML ์ฐธ๊ณ (์—˜๋ฆฌ๋จผํŠธ, ์ฃผ์„๋ฌธ)

 

- ์—˜๋ฆฌ๋จผํŠธ(element)

: root element๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ child element๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ž์† ์—˜๋ฆฌ๋จผํŠธ๋„ ํ•˜๋‚˜ ์ด์ƒ์˜ subchild element๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

<root element>
	<child element>
    	<subchild element> ๋ฐ์ดํ„ฐ </subchild element>
    </child element>
</root element>

 

+ empty element : ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์—˜๋ฆฌ๋จผํŠธ

<!-- empty element ํ‘œํ˜„๋ฒ• -->

<element></element>
<element/>

 

+ ์—˜๋ฆฌ๋จผํŠธ๋Š” ๋‹ค์ˆ˜์˜ ์†์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ ์†์„ฑ์€ ์†์„ฑ๋ช…๊ณผ ์†์„ฑ๊ฐ’์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.

<element ์†์„ฑ๋ช…="์†์„ฑ๊ฐ’">

 

 

 

- ์ฃผ์„๋ฌธ

: xml ๋ฌธ์„œ์˜ ์ฃผ์„๋ฌธ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•œ๋‹ค.

<!--์ฃผ์„๋ฌธ-->

 

 

 

 

# ์œ„์ ฏ : ํ…์ŠคํŠธ๋ทฐ

: View class ๋ฐ”๋กœ ๋‹ค์Œ์— ์œ„์น˜ํ•˜๋ฉฐ, ๋งŽ์€ ์œ„์ ฏ์ด ํ•˜์œ„์— ์กด์žฌ

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์†์„ฑ_text ์†์„ฑ

: ํ…์ŠคํŠธ ๋ทฐ์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•˜๋Š” ์†์„ฑ

-->  "๋ฌธ์ž์—ด" ํ˜•์‹์œผ๋กœ ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, "@string/๋ณ€์ˆ˜๋ช…" ํ˜•์‹์œผ๋กœ ์ง€์ •ํ•œ ํ›„ strings.xml ํŒŒ์ผ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์†์„ฑ_textColor ์†์„ฑ

: ๊ธ€์ž์˜ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ

-->  background ์†์„ฑ์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ์†์„ฑ๊ฐ’์€ #RRGGBB, #AARRGGBB ํ˜•์‹์„ ์‚ฌ์šฉ

 

 

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์†์„ฑ_textSize ์†์„ฑ

: ๊ธ€์ž์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ

-->  ์ง€์ • ๋‹จ์œ„๋Š” sp, mm, dp, px, in ๋“ฑ์ด ์žˆ์Œ

 

 

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์†์„ฑ_typeface ์†์„ฑ

: ๊ธ€์ž์˜ ๊ธ€๊ผด์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ

-->  ์†์„ฑ๊ฐ’์œผ๋กœ๋Š” sans, serif, monospace ๋“ฑ์ด ์˜ฌ ์ˆ˜ ์žˆ๊ณ , ๋””ํดํŠธ๊ฐ’์€ normal์ด๋‹ค.

 

 

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์†์„ฑ_textStyle ์†์„ฑ

: ๊ธ€์ž์˜ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ

-->  ์†์„ฑ๊ฐ’์œผ๋กœ bold, italic, bolditalic ์ด ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋””ํดํŠธ๊ฐ’์€ normal์ด๋‹ค.

 

 

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์†์„ฑ_singleLine ์†์„ฑ

: ๊ธ€์˜ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด ์ค„์ด ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ ๊ฐ•์ œ๋กœ ํ•œ ์ค„๊นŒ์ง€๋งŒ ์ถœ๋ ฅํ•˜๊ณ , ๋ฌธ์ž์—ด์˜ ๊ฐ€์žฅ ๋’คํŽธ์— '...'๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์†์„ฑ

-->  ์†์„ฑ๊ฐ’์œผ๋กœ๋Š” true, false๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋””ํดํŠธ๊ฐ’์€ false์ด๋‹ค.

 

 

 

- ํ…์ŠคํŠธ ๋ทฐ์˜ ์ถ”๊ฐ€ ์†์„ฑ

maxLines ์†์„ฑ ํ…์ŠคํŠธ ๋ทฐ์— ์ตœ๋Œ€ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ์ค„ ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ
minLines ์†์„ฑ ํ…์ŠคํŠธ ๋ทฐ์— ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ ์ค„ ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ
ellipsize ์†์„ฑ ํ…์ŠคํŠธ ๋ทฐ์˜ maxLines ์†์„ฑ์ด 1์ด๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์ด ๊ธธ์–ด ๊ธ€์ž๊ฐ€ ์ž˜๋ฆด ๋•Œ์— ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ
lines ์†์„ฑ ํ…์ŠคํŠธ ๋ทฐ์˜ ๋†’์ด๋ฅผ ๊ณ ์ •ํ•˜๋Š” ์†์„ฑ
maxLength ์†์„ฑ ํ…์ŠคํŠธ์˜ ์ „์ฒด ๊ธธ์ด๋ฅผ ์ œํ•œํ•˜์—ฌ ์„ค์ •ํ•œ ๊ฐ’๋งŒํผ์˜ ๊ธ€์ž๋งŒ ๋ณด์ด๋„๋ก ํ•˜๋Š” ์†์„ฑ

 

 

ex 1) maxLines ์†์„ฑ์œผ๋กœ ์ตœ๋Œ€ ์ค„ ์ˆ˜๋ฅผ 2๊ฐœ๋กœ ์„ค์ •ํ•˜๊ธฐ

 

 

ex 2) minLines ์†์„ฑ์œผ๋กœ ์ตœ์†Œ ์ค„ ์ˆ˜๋ฅผ 6๊ฐœ๋กœ ์ง€์ •ํ•˜๊ธฐ

 

 

ex 3) ellipsize ์†์„ฑ์œผ๋กœ ์  ์œ„์น˜ ๋ณ€๊ฒฝํ•˜๊ธฐ

์†์„ฑ๊ฐ’์ด start ์ธ ๊ฒฝ์šฐ

 

์†์„ฑ๊ฐ’์ด middle ์ธ ๊ฒฝ์šฐ

 

์†์„ฑ๊ฐ’์ด end ์ธ ๊ฒฝ์šฐ

 

 

ex 4) lines ์†์„ฑ์œผ๋กœ 10์ค„์— ๋Œ€ํ•œ ๊ณต๊ฐ„ ํ™•๋ณดํ•˜๊ธฐ

 

 

ex 5) maxLength ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ 10๋ฒˆ์งธ ๊ธ€์ž๊นŒ์ง€๋งŒ ๋ณด์ด๋„๋ก ์„ค์ •ํ•˜๊ธฐ

 

 

 

- ํ…์ŠคํŠธ๋ทฐ์˜ ์ƒ‰์ƒ์„ colors.xml์„ ์ž‘์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ

: colors.xml ๊ณผ ์†์„ฑ ์„ค์ •

<color name="์ปฌ๋ŸฌID">์ƒ‰์ƒ๊ฐ’</color>

 

: ์†์„ฑ ์„ค์ •

@color/์ปฌ๋ŸฌID

 

 

ex) ํ…์ŠคํŠธ ๋ทฐ ์ƒ‰์ƒ ์ง€์ • ์‹ค์Šต

โ‘  colors.xml ์— Line 10์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ดˆ๋ก์ƒ‰ ์ƒ‰์ƒ๊ฐ’์„ ์ƒ์„ฑ

Line 10์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ดˆ๋ก์ƒ‰ ์ƒ‰์ƒ๊ฐ’ ์ถ”๊ฐ€

 

โ‘ก activity_main.xml ๋กœ ๋Œ์•„์™€ textColor ์˜ ์†์„ฑ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ ์ƒ‰์ƒ์œผ๋กœ ์ง€์ •

๊ธ€์ž ์ƒ‰์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋ณ€ํ•จ์„ ํ™•์ธ

 

 

 

- Kotlin ์ฝ”๋“œ๋กœ ํ…์ŠคํŠธ ๋ทฐ์™€ ์—ฐ๊ด€๋œ XML ์†์„ฑ ์„ค์ •

: XML ์†์„ฑ์˜ ์ข…๋ฅ˜์™€ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ

 

 

ex) MainActivity.kt ์˜ ์ฝ”๋“œ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ XML ์†์„ฑ ์„ค์ •ํ•˜๊ธฐ