Skip to content

Latest commit

ย 

History

History
151 lines (89 loc) ยท 4.99 KB

๐Ÿ› ์•ˆ๋“œ๋กœ์ด๋“œUI ๊ธฐ๋ณธ.md

File metadata and controls

151 lines (89 loc) ยท 4.99 KB

Android UI - Widget

๐Ÿ› ์•ˆ๋“œ๋กœ์ด๋“œUI ๊ธฐ๋ณธ

๐Ÿ‘ทUI(UserInteface)์„ค๊ณ„ ๊ฐœ์š”

๋ทฐ(View)์˜ ๊ตฌ์„ฑ

  1. ์œ„์ ฏ(Widget)
    • View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค๋กœ์„œ, ์•ฑ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์‹œ๊ฐ์ ์ธ ๋ชจ์–‘์„ ์ง€๋‹Œ UI์š”์†Œ
    • ์˜ˆ) ๋ฒ„ํŠผ,๋ฉ”๋‰ด,๋ฆฌ์ŠคํŠธ ๋“ฑ
  2. ๋ ˆ์ด์•„์›ƒ(Layout)
    • ViewGroup์˜ ์„œ๋ธŒ ํด๋ž˜์Šค๋กœ์„œ, ๋‹ค๋ฅธ ๋ทฐ(์œ„์ ฏ ํ˜น์€ ๋ ˆ์ด์•„์›ƒ)๋ฅผ ํฌํ•จํ•˜๋ฉด์„œ ์ด๋“ค์„ ์ •๋ ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€๋‹Œ UI์š”์†Œ

    ๐Ÿ‘ทUI ์„ค๊ณ„ ๋ฐฉ๋ฒ•

01. XML์„ ์‚ฌ์šฉํ•˜์—ฌ UI์„ค๊ณ„

AndroidStudio์˜ Layout Editor์ด์šฉ

  • ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ฐฉ์‹์˜ WYSIWYG(what you see is what you get) ์—๋””ํ„ฐ
  • ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค / ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „์— ๋Œ€ํ•œ Preview
  • XML์ฝ”๋“œ ์ž๋™ ๋ณ€ํ™˜ ๋ฐ ๋™๊ธฐํ™”

Layout Editor

Untitled

1) Palette

  • ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ๋“œ๋ž˜๊ทธ ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ทฐ ๋ฐ ๋ทฐ ๊ทธ๋ฃน์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

2) Component Tree

  • ๋ ˆ์ด์•„์›ƒ์—์„œ ๊ตฌ์„ฑ์š”์†Œ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

3) ํˆด๋ฐ”

  • ํŽธ์ง‘๊ธฐ์—์„œ ๋ ˆ์ด์•„์›ƒ ๋ชจ์–‘์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋ ˆ์ด์•„์›ƒ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

4) ๋””์ž์ธ ํŽธ์ง‘๊ธฐ

  • ๋””์ž์ธ ๋ทฐ๋‚˜ ์ฒญ์‚ฌ์ง„ ๋ทฐ ๋˜๋Š” ๋‘ ๋ทฐ ๋ชจ๋‘์—์„œ ๋ ˆ์ด์•„์›ƒ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

5) Attributes

  • ์„ ํƒํ•œ ๋ทฐ์˜ ์†์„ฑ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค

6) ๋ทฐ ๋ชจ๋“œ

  • ๋ ˆ์ด์•„์›ƒ์„ ์ฝ”๋“œ, ๋””์ž์ธ, ๋ถ„ํ•  ๋ชจ๋“œ ์ค‘ ํ•˜๋‚˜๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋ถ„ํ•  ๋ชจ๋“œ๋Š” ์ฝ”๋“œ ์ฐฝ๊ณผ ๋””์ž์ธ ์ฐฝ์„ ๋™์‹œ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

7) ํ™•๋Œ€/์ถ•์†Œ ๋ฐ ํ™”๋ฉด ์ด๋™ ์ปจํŠธ๋กค

  • ํŽธ์ง‘๊ธฐ ๋‚ด์—์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

2. ๐Ÿ“ฑ์œ„์ ฏ(Widget)

2.1 ์œ„์ ฏ์ด๋ž€?

โ“์œ„์ ฏ(Wdiget)๋Š” ๊ณผ์—ฐ ๋ฌด์—‡์ผ๊นŒ?

  • View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค ์ค‘์—์„œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ๋“ค์„ ๋งํ•จ
  • ๋Œ€ํ‘œ์ ์ธ ์œ„์ ฏ์€ TextView, EditText, Button๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๐Ÿ“ฑ์œ„์ ฏ(Widget)

2.1 ์œ„์ ฏ์ด๋ž€?

โ“์œ„์ ฏ(Wdiget)๋Š” ๊ณผ์—ฐ ๋ฌด์—‡์ผ๊นŒ?

  • View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค ์ค‘์—์„œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ๋“ค์„ ๋งํ•จ
  • ๋Œ€ํ‘œ์ ์ธ ์œ„์ ฏ์€ TextView, EditText, Button๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๐Ÿ“ฑ์œ„์ ฏ(Widget)

2.1 ์œ„์ ฏ์ด๋ž€?

โ“์œ„์ ฏ(Wdiget)๋Š” ๊ณผ์—ฐ ๋ฌด์—‡์ผ๊นŒ?

  • View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค ์ค‘์—์„œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ๋“ค์„ ๋งํ•จ
  • ๋Œ€ํ‘œ์ ์ธ ์œ„์ ฏ์€ TextView, EditText, Button๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

View

01. โ“View๋ž€ ๋ฌด์—‡์ผ๊นŒ?

  • Viewํด๋ž˜์Šค๋Š” ๋ชจ๋“  UI ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค
  • Viewํด๋ž˜์Šค์˜ ์†์„ฑ์€ ๋ชจ๋“  UI์ปดํฌ๋„ŒํŠธ๋“ค์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Untitled

02. layout_width, layout_height

  • match_parent(ํ˜น์€fill_parent) : ๋ถ€๋ชจ UI์ปดํฌ๋„ŒํŠธ์˜ ํฌ๊ธฐ์— ๋งž์ถค
    • SDK2.2(ํ”„๋กœ์š”)๋ถ€ํ„ฐ๋Š” match_parent๋กœ ๋ณ€๊ฒฝ. ๋‘˜๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • wrap_content : UI์ปดํฌ๋„ŒํŠธ์˜ ๋‚ด์šฉ๋ฌผ ํฌ๊ธฐ์— ๋งž์ถค

03. ๋‹ค์–‘ํ•œ ์Šค๋งˆํŠธํฐ ํ•ด์ƒ๋„ ๋Œ€์‘ ๋ฐฉ๋ฒ•

์•ˆ๋“œ๋กœ์ด๋“œDP(Dip),PX,DPI์˜ ๊ฐœ๋…

px๋“ฑ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์ •ํ•ด์ฃผ๋ฉด ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ธฐ๊ธฐ๋งˆ๋‹ค ์ „ ๋ถ€ ๋˜‘๊ฐ™์ด ๋˜์„œ ์œ ๋™์ ์ธ dp๋ฅผ ์จ์คŒ

Untitled

1) ์Šคํฌ๋ฆฐ์˜ ์‹ค์ œ ๋‹จ์œ„ โ†’ px

  • PX๋‹จ์œ„๋Š” ํ™”๋ฉด์˜ ์ „์ฒด ํ™”๋ฉด ํฌ๊ธฐ์™€ ์ƒ๊ด€ ์—†์ด ์ง€์ •ํ•œ ์ˆ˜์น˜๋งŒํผ ํ‘œ์‹œ๋˜๋Š” ์ ˆ๋Œ€์  ํ‘œ์‹œ ๋‹จ์œ„

2) dp(Density-independentPixel)

  • ๋ฐ€๋„ ๋˜๋Š” ๋…๋ฆฝ ํ™”์†Œ๋ฅผ ๋งํ•˜๋ฉฐ, ๋””์Šคํ”Œ๋ ˆ์ด์˜ ํ•ด์ƒ๋„(๋ฐ€๋„)์™€ ์ƒ๊ด€ ์—†์ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š”๋‹จ์œ„

3) dpi(dotsperinch)

  • DPI๋Š” DotPerInch๋กœ 1์ธ์น˜์— ๋“ค์–ด๊ฐ€๋Š” ํ”ฝ์…€์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„์ด๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค๋ฉด 100DPI๋Š” 1์ธ์น˜ ๋‹น ํ”ฝ์…€์ด 100๊ฐœ ํฌํ•จ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
  • ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๊ณ ๋ฐ€๋„์ด๋ฉฐ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ฃผ์š”DPI๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

TextView

์‹ค์ œ ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰์‹œ์ผœ๋ณด์ž

  • ํ™”๋ฉด์— text๋ฅผ ํ‘œ์‹œ ํ•˜๋Š” ์šฉ๋„

  • ์ฃผ์š” ์†์„ฑ

    Untitled

2.4 EditText

์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•œ Text์ฐฝ

์ฃผ์š” ์†์„ฑ

  • TextView์˜ ๋ชจ๋“  ์†์„ฑ ์ƒ์†(EditText๋Š”TextView์˜ ์„œ๋ธŒํด๋ž˜์Šค์ž„)

  • inputType: ์ž…๋ ฅ ์‹œ ํ—ˆ์šฉ๋˜๋Š” ํ‚ค๋ณด๋“œ ํƒ€์ž… ์„ค์ • ๋ฐ ํ‚ค๋ณด๋“œ ํ–‰์œ„๋ฅผ ์„ค์ •

    ํ‚ค๋ณด๋“œ ํƒ€์ž… ์„ค์ • ๊ฐ’

    • โ€œtextโ€:์ผ๋ฐ˜์ ์ธ ํ…์ŠคํŠธ ํ‚ค๋ณด๋“œ
    • โ€œphoneโ€:์ „ํ™”๋ฒˆํ˜ธ ์ž…๋ ฅ ํ‚ค๋ณด๋“œ
    • โ€œtextEmailAddressโ€:@๋ฌธ์ž๋ฅผ ๊ฐ€์ง„ ํ…์ŠคํŠธ ํ‚ค๋ณด๋“œ

    ํ‚ค๋ณด๋“œ ํ–‰์œ„ ์„ค์ • ๊ฐ’

    • โ€œtextCapWordsโ€ : ๋ฌธ์žฅ์˜ ์‹œ์ž‘์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
    • โ€œtextAutoCorrectโ€ : ์ž…๋ ฅ๋œ ๋‹จ์–ด์™€ ์œ ์‚ฌํ•œ ๋‹จ์–ด๋ฅผ ์ œ์‹œํ•˜๊ณ  ์ œ์‹œ๋œ ๋‹จ์–ด ์„ ํƒ ์‹œ,์ž…๋ ฅ๋œ ๋‹จ์–ด๋ฅผ ๋Œ€์น˜
    • โ€œtextMultiLineโ€:์—ฌ๋Ÿฌ ์ค„์„ ์ž…๋ ฅ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

    ๐Ÿ“ ImageView