๐Ÿ“App Developing/Kotlin ๊ฐ•์ขŒ

BTS ์‚ฌ์ง„ ์–ดํ”Œ ๋งŒ๋“ค๊ธฐ

Hush 2022. 7. 19. 17:43

์‚ฌ์ง„์€ app>res>drawable ํด๋”์— ๋„ฃ์–ด์ฃผ์ž.

์ด ์–ดํ”Œ์„ ๋งŒ๋“ค๋•Œ๋Š” ๋ ˆ์ด์•„์›ƒ ์ค‘ LinearLayout์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

๋ ˆ์ด์•„์›ƒ์—๋Š” ์„ธ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ ์•„์ง ๋ชฐ๋ผ๋„ ๋œ๋‹ค.

 

์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ImageView๋ฅผ ๋„ฃ์–ด์ฃผ์ž.

width์™€ height๋Š” ๊ฐ๊ฐ 100dp๋กœ ์„ค์ •ํ•˜์ž.

 

์ด์ œ ImageView์— ๋ณด์ผ ์ด๋ฏธ์ง€๋ฅผ android:src ๋กœ ์ง€์ •ํ•˜์—ฌ ์„ ํƒํ•ด์ฃผ์ž.

Design์ฐฝ์— ์ด๋ฏธ์ง€๊ฐ€ ์ž˜ ๋“ค์–ด๊ฐ”์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ImageView๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋„ฃ์œผ๋ฉด ์—ฌ๋Ÿฌ ์‚ฌ์ง„์„ ๋ณด์—ฌ์ค„ ์ˆ˜์žˆ๋‹ค.

 

๋ ˆ์ด์•„์›ƒ์— ๋Œ€ํ•œ ์ดํ•ด

์ž ์‹œ ์•„๊นŒ ์–ธ๊ธ‰ํ•œ ๋ ˆ์ด์•„์›ƒ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๊ฐ€์ž.

 

Linear Layout

๊ธ€์„ ์“ฐ๋Š”๊ฒƒ์ฒ˜๋Ÿผ ์ขŒ์šฐ ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋ฉด ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ, ์ขŒ์šฐ ๊ณต๊ฐ„์ด ๋‹ค ์ฐจ๋ฉด ์•„๋ž˜์ชฝ์œผ๋กœ ์š”์†Œ๋“ค์„ ๋ฐฐ์น˜ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.

 

Relative Layout

๊ธฐ์กด์˜ ์š”์†Œ์™€ ์ƒ๊ด€์—†์ด ๊ธฐ์ค€ ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง€์ •๋œ ์œ„์น˜์— ๋ฐฐ์น˜ํ•œ๋‹ค.

์š”์†Œ๋ผ๋ฆฌ ๊ฒน์น ์ˆ˜ ์žˆ๋‹ค.

 

Constraint Layout

๊ฐ๊ฐ์˜ ์š”์†Œ๋“ค์„ ์–ผ๋งˆ๋งŒํผ ๋„์›Œ ๋ฐฐ์น˜ํ• ์ง€๋ฅผ ํ†ตํ•ด ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.

 

 

 

 

๊ทธ๋Ÿผ ๊ณ„์† BTS ์–ดํ”Œ ์ œ์ž‘์„ ํ•ด๋ณด์ž

๋‹จ์ˆœํžˆ ImageView๋ฅผ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜๋ฉด ์ขŒ์šฐ๋กœ๋งŒ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ํ™”๋ฉด์„ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ํ•œ ์ค„์„ ํ•˜๋‚˜์˜ LinearLayout์œผ๋กœ ๋ฌถ๊ณ , ๋‹ค์Œ์ค„์€ ์ƒˆ๋กœ์šด LinearLayout์œผ๋กœ ๋ฌถ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผํ•œ๋‹ค.

์ขŒ์šฐ๋„ˆ๋น„๋Š” ๋ถ€๋ชจ์š”์†Œ์™€ ๋™์ผํ•˜๋„๋ก match_parent ์†์„ฑ์„ ์ฃผ์—ˆ๊ณ , ๋†’์ด๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋”ฑ ๊ฐ์‹ธ๋„๋ก wrap_content ์†์„ฑ์„ ์ฃผ์—ˆ๋‹ค.

 

์ด๋Ÿฐ LinearLayout์„ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค์–ด์ฃผ์ž

๊ทธ๋Ÿฐ๋ฐ ๊ทธ๋ž˜๋„ ์—ฌ์ „ํžˆ ์—ฌ๋Ÿฌ ์ค„๋กœ ์‚ฌ์ง„์ด ํ‘œํ˜„๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ๊ฐ€์žฅ ๋ฐ”๊นฅ์˜ LinearLayout์˜ orientation์„ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์•„์„œ ๊ธฐ๋ณธ๊ฐ’์ธ horizontal ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์„œ ๊ทธ๋ ‡๋‹ค.

android:orientation="vertical"

์ด๋ ‡๊ฒŒ ์ ์–ด์ฃผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ์‚ฌ์ง„์ด ๋ณด์ผ ๊ฒƒ์ด๋‹ค.

 

.kt ํŒŒ์ผ๋กœ ์š”์†Œ ์ œ์–ดํ•˜๊ธฐ

์ด์ œ ์š”์†Œ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.

๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ํฌ๊ฒŒ ๋ณด์ด๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์šฐ์„  ํด๋ฆญ๋œ ์ด๋ฏธ์ง€๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ImageView ์š”์†Œ์— id๋ฅผ ๋ถ€์—ฌํ•˜์ž.

android:id = "@+id/์•„์ด๋””"

์ด๋ ‡๊ฒŒ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ .ktํŒŒ์ผ์— ๊ฐ€์„œ ์š”์†Œ๋ฅผ ์ œ์–ดํ•ด๋ณด์ž

 

 

 

์šฐ์„  val๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  findViewById๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์˜€๋‹ค.

<>์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์–ด๋–ค ์ข…๋ฅ˜์˜ ์š”์†Œ๋ฅผ ์„ ํƒํ•  ๊ฒƒ์ธ์ง€์ด๋ฉฐ, ()์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์˜ˆ์ œ์—์„œ๋Š” ์š”์†Œ์˜ id์ด๋‹ค.

์ดํ›„ ์š”์†Œ๊ฐ€ ํด๋ฆญ๋˜์—ˆ์„๋•Œ ์ด๋ฒคํŠธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด setOnClickListener๋ฅผ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์šฐ์„  ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๊ฐ€ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ž„์‹œ๋กœ "1๋ฒˆ ํด๋ฆญ ์™„๋ฃŒ"๋ผ๋Š” ํ† ์ŠคํŠธ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

๊ฐ€์ƒ๊ธฐ๊ธฐ๋ฅผ ์—ด๊ณ  1๋ฒˆ ์‚ฌ์ง„์„ ํด๋ฆญํ•˜๋ฉด ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ ์ด๋ฏธ์ง€๊ฐ€ ํ™”๋ฉด์— ๊ฝ‰ ์ฐจ๊ฒŒ ๋ณด์ด๋„๋ก ํ•  ๊ฒƒ์ž„.

์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ˜„ํ•  ๋ฐฉ์‹์€ ์ด๋ฏธ์ง€๊ฐ€ ํด๋ฆญ๋˜๋ฉด ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ, ๊ทธ ํ™”๋ฉด์— ์ด๋ฏธ์ง€๋ฅผ ๊ฝ‰ ์ฐจ๊ฒŒ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ์‹์ž„.

์šฐ์„  ์ƒˆ๋กœ์šด ํ™”๋ฉด์„ ๋งŒ๋“ค๋ ค๋ฉด ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ•˜๋‚˜ ๋” ํ•„์š”ํ•˜๋ฏ€๋กœ ์ƒˆ๋กœ์šด empty Activity๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

ImageView๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ํฌ๊ธฐ๋Š” ๋†’์ด์™€ ๋„ˆ๋น„ ๋ชจ๋‘ match-parent๋กœ ์„ค์ •ํ•ด์ฃผ์ž.

android:src์— ์ด๋ฏธ์ง€ ๋งํฌ๋ฅผ ๊ฑธ์–ด์ฃผ๋ฉด ์ƒˆ๋กœ์šด ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ž˜ ์ค€๋น„๋˜์—ˆ๋‹ค.

 

์ด์ œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ์— ์ƒˆ๋กœ์šด ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๋„๋ก ์ฝ”๋“œ๋ฅผ ์ ์–ด์ฃผ์ž.

Intent ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.