[Android] 18. ์์ ฏ : XML ์ฐธ๊ณ (์๋ฆฌ๋จผํธ, ์ฃผ์๋ฌธ), ํ ์คํธ๋ทฐ
# ์์ ฏ : 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 ์์ฑ์ผ๋ก ์ ์์น ๋ณ๊ฒฝํ๊ธฐ
ex 4) lines ์์ฑ์ผ๋ก 10์ค์ ๋ํ ๊ณต๊ฐ ํ๋ณดํ๊ธฐ
ex 5) maxLength ์์ฑ์ ์ด์ฉํ์ฌ 10๋ฒ์งธ ๊ธ์๊น์ง๋ง ๋ณด์ด๋๋ก ์ค์ ํ๊ธฐ
- ํ ์คํธ๋ทฐ์ ์์์ colors.xml์ ์์ฑํ์ฌ ์ฌ์ฉํ๊ธฐ
: colors.xml ๊ณผ ์์ฑ ์ค์
<color name="์ปฌ๋ฌID">์์๊ฐ</color>
: ์์ฑ ์ค์
@color/์ปฌ๋ฌID
ex) ํ ์คํธ ๋ทฐ ์์ ์ง์ ์ค์ต
โ colors.xml ์ Line 10์ ์ถ๊ฐํ์ฌ ์ด๋ก์ ์์๊ฐ์ ์์ฑ
โก activity_main.xml ๋ก ๋์์ textColor ์ ์์ฑ๊ฐ์ ์ถ๊ฐํ ์์์ผ๋ก ์ง์
- Kotlin ์ฝ๋๋ก ํ ์คํธ ๋ทฐ์ ์ฐ๊ด๋ XML ์์ฑ ์ค์
: XML ์์ฑ์ ์ข ๋ฅ์ ๊ด๋ จ ๋ฉ์๋
ex) MainActivity.kt ์ ์ฝ๋๋ฅผ ์กฐ์ํ์ฌ XML ์์ฑ ์ค์ ํ๊ธฐ