[Android] Drawable์ mutate()
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()