android studio

[Android] Drawable์˜ mutate()

๊ฑด๋ง๋”” 2021. 5. 18. 17:09

Drawable๊ฐ์ฒด๋กœ ๊ฐ ์•„์ดํ…œ์— ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ, ์ƒ‰์ƒ ๊ฐ’๋งŒ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ๋‹ค.

Drawable drawable = getDrawable(R.drawable.paw);

์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํžˆ ์œ„์™€ ๊ฐ™์ด drawable ๊ฐ์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ switch๋ฌธ์„ ํ†ตํ•ด ๊ฐ drawable์˜ ์ƒ‰์„ ๋‹ค๋ฅด๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๊ณ ์ž ํ•˜์˜€๋Š”๋ฐ, ํ•˜๋‚˜์˜ ๋ทฐ์— ์•„์ดํ…œ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ณณ์—๋Š” ์ƒ‰์ด ๋ชจ๋‘ ํ•˜๋‚˜๋กœ ๋ฎ์–ด์จ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

 

๊ตฌ๊ธ€์— ์„œ์น˜๋ฅผ ํ•ด๋ณด๋‹ˆ, ๊ณตํ†ต๋œ drawable ๊ฐ์ฒด๋Š” ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

ํ•œ ๋ทฐ์—์„œ drawable์„ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•  ๋•Œ, ํ•˜๋‚˜์˜ drawable์—์„œ ํŠน์ • ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ๊ทธ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋‹ค๋ฅธ drawable ๊ฐ์ฒด์—๋„ ๋™์ผํ•˜๊ฒŒ ์˜ํ–ฅ์„ ์ค€๋‹ค.

๋”ฐ๋ผ์„œ ๊ณตํ†ต๋œ drawable์„ ๊ฐ€์ง€๊ณ  ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๋‹ค๋ฅธ drawable๊ณผ ๊ทธ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค.

Drawable drawable = getDrawable(R.drawable.paw).mutate();

 

mutate()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, Drawable์ด ๊ณต์œ ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

์ฐธ๊ณ  :

https://stackoverflow.com/questions/31944501/

https://developer.android.com/reference/android/graphics/drawable/Drawable.html#mutate()