๐Ÿ”ฌ [Flutter] BoxFit ?

Tygerยท2024๋…„ 5์›” 19์ผ
1

Flutter

๋ชฉ๋ก ๋ณด๊ธฐ
59/64

๐Ÿ”ฌ BoxFit ?

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋งž์ถฐ์ฃผ๋Š” ๊ธฐ๋Šฅ์ธ BoxFit์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

Flutter๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝํ—˜ ์™ธ์—๋„ ๋‹ค๋ฅธ ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃฌ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์„ ๋‚ด์šฉ์ผ ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ๋น„์Šทํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด์„œ Flutter๋ผ๊ณ  ํฌ๊ฒŒ ๋‹ค๋ฅธ ๋ถ€๋ถ„์€ ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

์ •๋ฆฌํ•˜๋Š” ์ฐจ์›์—์„œ ์ž‘์„ฑํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ˆ ๊ฐ€๋ณ๊ฒŒ ๋ณด์‹œ๊ธธ ๋ฐ”๋ž€๋‹ค.

Flutter์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€๋Š” Asset, Network, File, Memory ์ด๋ ‡๊ฒŒ 4๊ฐ€์ง€ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ 4๊ฐ€์ง€์˜ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๊ณตํ†ต์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋ฌผ๋ก  ๋ถˆ๋Ÿฌ์˜จ ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ, ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์ƒ๊ฐํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค.

์ด๋ฏธ์ง€์˜ ๋น„์œจ๋„ ๊ณ ๋ คํ•ด์•ผํ•˜๊ณ , ์›๋ณธ์˜ ํ•ด์ƒ๋„๋„ ๊ณ ๋ คํ•ด์•ผ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋‹น์—ฐํžˆ ๊ทœ๊ฒฉํ™”๋œ ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ฒ ์ง€๋งŒ, ์„œ๋น„์Šค์—์„œ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹Œ ์ด์ƒ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ์›ํ•˜๋Š” ๋งŒํผ ๋ณด์—ฌ์ฃผ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.

์ด๊ฒŒ ๋ฌด์Šจ๋ง์ธ๊ฐ€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ธฐ์— ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜์ž.

์˜ค๋ฆฌ์ง€๋„ ์ด๋ฏธ์ง€๋Š” ์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋” ํฐ ์ด๋ฏธ์ง€์ด๋‹ค. ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์ •์‚ฌ๊ฐํ˜•์˜ ์œ„์ ฏ์•ˆ์— ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ ?

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

์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Image ์œ„์ ฏ์˜ fit์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

fit์€ BoxFit์„ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ, BoxFit์€ ์ด๋ฏธ์ง€ ์™ธ์—๋„ ์ž์‹ ์œ„์ ฏ์„ ๋ถ€๋ชจ ์œ„์ ฏ์— ๋งž์ถ”๊ณ  ์‹ถ์„ ๋•Œ์— ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

BoxFit์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฆฌ์‚ฌ์ด์ฆˆ ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

contain
cover
fill
fitHeight
fitWidth
none
scaleDown

๊ฐ๊ฐ ์›๋ณธ ์ด๋ฏธ์ง€์™€ ๋น„๊ตํ•ด์„œ ์‚ดํŽด๋ณผ ์˜ˆ์ •์ด๊ณ , ํŠน์„ฑ์ƒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์ด์ฆˆ๋กœ ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ณ€๊ฒฝ์‹œ์ผœ ํ…Œ์ŠคํŠธ ํ•˜์˜€๋‹ค.

ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•œ ๋””๋ฐ”์ด์Šค๋Š” iPhone 15 Pro Max ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , ์ด๋ฏธ์ง€๋Š” 3024x4032 ์‚ฌ์ด์ฆˆ์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

contain

BoxFit.Contain์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

์ด๋ฏธ์ง€์˜ ์›๋ž˜ ๋น„์œจ์€ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์ตœ๋Œ€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
์›๋ณธ์˜ ๋น„์œจ์ด ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฏธ์ง€ ์ž์ฒด๋Š” ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€ ์ผ๋ถ€๊ฐ€ ์ž˜๋ ค๋‚˜๊ฐ€์ง€ ์•Š๊ฒŒ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋ถ€๋ชจ ์œ„์ ฏ์˜ width๋‚˜ height ๋ชจ๋‘๊ฐ€ ์ผ์น˜ํ•˜์ง€๋Š” ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

original ๋น„์œจ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ถ€๋ชจ ์œ„์ ฏ์˜ width, height ์ค‘์˜ ์ตœ๋Œ€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

original 400 x 400 400 x 250 300 * 600

cover

๋‹ค์Œ์œผ๋กœ ๋Œ€ํ‘œ์ ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์‚ฌ์ด์ฆˆ ๋ฐฉ๋ฒ•์ธ BoxFit.cover์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž.

BoxFit.cover๋Š” ์ด๋ฏธ์ง€๋ฅผ ์›๋ณธ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์‚ฌ์ด์ฆˆ ๋งŒํผ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ํฌ๋กญํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํฌ๋กญ์€ ์ด๋ฏธ์ง€๋ฅผ ์ž˜๋ผ๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ๋ฆฌ์‚ฌ์ด์ฆˆ ๋ฐฉ๋ฒ•์ธ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์›๋ณธ ์‚ฌ์ด์ฆˆ๊ฐ€ ์œ ์ง€ ๋˜๋ฉด์„œ ํฌ๋กญ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€๋ชจ ์œ„์ ฏ์˜ width, height๊ฐ€ ๋ชจ๋‘ ์™„๋ฒฝํ•˜๊ฒŒ ํ”ผํŒ…๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋‹จ์ ์€ ๋‹น์—ฐํžˆ ์ด๋ฏธ์ง€์˜ ์ผ๋ถ€๊ฐ€ ์ž˜๋ ค๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ•˜๋Š” ์ด๋ฏธ์ง€ ์˜์—ญ์ด ๋ชจ๋‘ ๋ณด์—ฌ์ง€์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋‹จ์ ์ด๋‹ค.

original 400 x 400 400 x 250 300 * 600

BoxFit.cover๋Š” ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ถ€๋ชจ ์œ„์ ฏ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ ?

์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ 3024x4032 -> 100x133์œผ๋กœ ํ•ด์ƒ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜์ž.

๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๊ฒŒ ๋ณด์—ฌ์ง„๋‹ค. ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์‚ฌ์ด์ฆˆ ๋งŒํผ ํ™•์žฅํ•œ ๋’ค์— ํฌ๋กญ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์—ฌ์ง€๋Š” ์˜์—ญ์€ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ง€์ง€ ์•Š๋Š”๋‹ค.

original 400 x 400 400 x 250 300 * 600

fill

์ด๋ฒˆ์—๋Š” ์œ„์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์ฒ˜๋Ÿผ ์›๋ณธ์˜ ๋น„์œจ์„ ์œ ์ง€์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ฆฌ์‚ฌ์ด์ง•๋˜๋Š” BoxFit.fill์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

Boxfit.fill์€ ์›๋ณธ ์ด๋ฏธ์ง€์˜ ๋น„์œจ์„ ๋ฌด์‹œํ•˜๊ณ  ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์‚ฌ์ด์ฆˆ๋งŒํผ ๊ฐ•์ œ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋Š˜๋ฆฌ๊ฒŒ ๋œ๋‹ค. ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ํ•œ ๋ฒˆ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋˜ ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•˜๋‹ค.

์ด๋ฏธ์ง€์˜ ์›๋ณธ์ด ์ด์ƒํ•˜๊ฒŒ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ๋“ค์ง€๋งŒ BoxFit์ด ์ด๋ฏธ์ง€์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ์ž์‹ ์œ„์ ฏ์„ ํ”ผํŒ…ํ•  ๋•Œ์—๋„ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•Œ์•„๋‘๋„๋ก ํ•˜์ž.

์ด๋ฏธ์ง€ ์‚ฌ์šฉ์‹œ์—๋Š” ์›๋ณธ ๋น„์œจ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ๋ฐ˜๋“œ์‹œ ์•Œ๊ณ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

original 400 x 400 400 x 250 300 * 600

fitHeigth

์ด์–ด์„œ BoxFit.contain์—์„œ๋Š” width, height ์ค‘ ์ตœ๋Œ€ ํ™•์žฅ ์˜์—ญ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์‚ฌ์ด์ฆˆํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ํŠน์ • ๋„ˆ๋น„๋‚˜ ๋†’์ด๊ฐ€ ๊ธฐ์ค€์ด ๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ fitHeight, fitWidth์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

๋จผ์ €, BoxFit.fitHeight๋Š” contain๊ณผ ๋™์ผํ•˜๊ฒŒ ์›๋ณธ ๋น„์œจ์ด ์œ ์ง€ํ•˜๋˜ ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์ตœ๋Œ€ ํ™•์žฅ ์˜์—ญ์„ ๋†’์ด์— ํ”ผํŒ…๋˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

original 400 x 400 400 x 250 300 * 600

fitWidth

์ด์–ด์„œ ๋ถ€๋ชจ ์œ„์ ฏ์˜ ํ™•์žฅ ์˜์—ญ์„ ๋„ˆ๋น„๋กœ ๊ณ ์ •์‹œํ‚ค๋Š” BoxFit.fitWidth์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž.

original 400 x 400 400 x 250 300 * 600

none

์ด๋ฒˆ์—๋Š” BoxFit.none์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. BoxFit.none์€ none์ด๋ผ๋Š” ์˜๋ฏธ ๋•Œ๋ฌธ์—, ์›๋ณธ์„ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋“ฏํ•˜์ง€๋งŒ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค.

original ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๋Š” 3024x4032์œผ๋กœ ๋””๋ฐ”์ด์Šค ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ํ›จ์”ฌ ํฐ ์‚ฌ์ด์ฆˆ์˜ ์ด๋ฏธ์ง€์ด๋‹ค.
Image ์œ„์ ฏ์„ ์‚ฌ์šฉํ•  ๋•Œ์— ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ , fit๋„ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด original ์ด๋ฏธ์ง€๋Š” contain์ด ๊ธฐ์ค€์ด ๋˜์–ด ํ”ผํŒ…์ด ๋œ๋‹ค. ์ฆ‰ ๋„ˆ๋น„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ”ผํŒ…๋œ ์ƒํƒœ์ด๋‹ค.

BoxFit.none์€ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ ๊ทธ๋Œ€๋กœ๋ฅผ ๋ณด์—ฌ์ค€ ์ƒํƒœ์—์„œ ๋ถ€๋ชจ ์œ„์ ฏ์„ ํฌ๋กญํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ํฐ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€์˜ ๊ทนํžˆ ์ผ๋ถ€๋ถ„๋งŒ์ด ๋…ธ์ถœ๋˜๊ธฐ๋„ ํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ๋„ˆ๋ฌด ์ž‘์€๊ฒฝ์šฐ ๋ถ€๋ชจ ์œ„์ ฏ ๋งŒํผ ํ™•์žฅ์„ ํ•˜์ง€ ๋ชปํ•˜์—ฌ ๋นˆ ์˜์—ญ์ด ๋…ธ์ถœ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

original 400 x 400 400 x 250 300 * 600

scaleDown

๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ€์žฅ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฐฉ๋ฒ•์ธ BoxFit.scaleDown์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

์ด ๋ฐฉ๋ฒ•์ด ์™œ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ํ•˜๋Š”์ง€๋Š” ์‚ฌ์šฉํ•ด๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋…ธ์ถœ๋˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ BoxFit.contain๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ณด์—ฌ์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ฒฐ๊ณผ ๊ฐ’์„ ๋น„๊ตํ•ด๋ณด์ž. ๋จผ์ € BoxFit.contain์ด๋‹ค.

BoxFit.contain

original 400 x 400 400 x 250 300 * 600

BoxFit.scaleDown

๊ฒฐ๊ณผ ๊ฐ’์ด ๋™์ผํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

original 400 x 400 400 x 250 300 * 600

contain๊ณผ scaleDown์˜ ์ฐจ์ด์ ์€ ๋ญ˜๊นŒ ? ๋ฐ”๋กœ contain๊ณผ ๋Œ€๋ถ€๋ถ„ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋งŒ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ค„์–ด๋“ค๊ฒŒ ๋˜๊ณ , ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ถ€๋ชจ ์œ„์ ฏ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ํ™•์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค.
์ฆ‰ ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฐ ๊ฒฝ์šฐ์—๋Š” contain๊ณผ ์ฐจ์ด์ ์ด ์—†์ง€๋งŒ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ถ€๋ชจ ์œ„์ ฏ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” BoxFit.scaleDown์—์„œ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ปค์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ 100x133์œผ๋กœ ์กฐ์ •ํ•ด ์ฃผ๊ณ  contain๊ณผ scaleDown์˜ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•ด๋ณด์ž.

BoxFit.contain

original 400 x 400 400 x 250 300 * 600

BoxFit.scaleDown

original 400 x 400 400 x 250 300 * 600

๋งˆ๋ฌด๋ฆฌ

BoxFit์— ๋Œ€ํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด ์‚ดํŽด๋ดค๋Š”๋ฐ, BoxFit์€ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  FittedBox ์œ„์ ฏ์„ ์‚ฌ์šฉํ•ด์„œ๋„ ์ž์‹ ์œ„์ ฏ์„ ํ”ผํŒ…ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ถ€๋ชจ ์œ„์ ฏ์— ๋งž์ถฐ์ง€๋Š”์ง€๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋œ๋‹ค.

๋‹ค์Œ๋ฒˆ์—๋Š” FittedBox๋ฅผ ์‚ฌ์šฉํ•œ BoxFit์— ๋Œ€ํ•ด์„œ๋„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

profile
Flutter Developer

0๊ฐœ์˜ ๋Œ“๊ธ€