์์ฑ์ผ: 2017.12.10
๋นํธ๋งต์ ์์์ ๋ฎ์ด ์์ฐ๋ ๋ฐฉ๋ฒ
-> ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ์์ผ๋ก ์ฌ์ฉํด์ผ ํ ๋ ์ ์ฉํ๋ค.
์์๋, ํฐ์ ์์ด์ฝ์ ๋ค๋ฅธ ์์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. (์์ด์ฝ์ด ํฐ์์ด๋ผ ์์๋ก ๋ฐฐ๊ฒฝ์์ ์ค.)
//1. Drawable -> Bitmap
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.email_xxl).copy(Bitmap.Config.ARGB_8888, true);
//2. ColorFilter ๋ง๋ค๊ธฐ
Paint paint = new Paint();
ColorFilter colorFilter = new PorterDuffColorFilter(Color.DKGRAY, PorterDuff.Mode.SRC_ATOP); //(color, mode)
paint.setColorFilter(colorFilter);
//3. ColorFilter ์ ์ฉํ๊ธฐ
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(bitmap, 0, 0, paint);
1. Drawable -> Bitmap
๊ฐ์ง๊ณ ์๋ Drawable์ Bitmap์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
๊ทธ๋ฅ decode~() ๋ฉ์๋๋ง ์ฌ์ฉํ์ ๋ Immutable bitmap passed to Canvas constructor ์ค๋ฅ๊ฐ ๋ ์ ์์ผ๋
์ด ๊ฒฝ์ฐ, copy() ๋ฅผ ํตํด ๋ณต์ฌํ์ฌ ์ ์ฅํ๋ฉด ๋๋ค.
2. ColorFilter ๋ง๋ค๊ธฐ
Bitmap์ ์ ์ฉํ ColorFilter๋ฅผ ๋ง๋ ๋ค.
์์๋ ๋คํฌ๊ทธ๋ ์ด ์์์ ์ ์ฉํ์๊ณ , PorterDuff.Mode.SRC_ATOP๋ source๋ฅผ ์์ ๋ฎ๊ฒ ๋ค ๋ผ๋ ์๋ฏธ.
(์์์ ๊ฒฝ์ฐ Destination์ Bitmap / Source๋ ColorFilter๊ฐ ๋๋ค.)
์ฐธ๊ณ : https://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
3. ColorFilter ์ ์ฉํ๊ธฐ
๋ง์ง๋ง์ผ๋ก ์์์ ๋ง๋ ColorFilter๋ฅผ Bitmap์ ์ ์ฉํ๋ฉด ์๋ฃ!
์ด๋ ๊ฒ ํฐ์ ์์ด์ฝ์ ์ปฌ๋ฌ ํํฐ๊ฐ ์ ํ์ ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
'๊ฐ๋ฐ > Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] Kotlin Extension Function์ ์ฌ์ฉํ์ฌ ๋๋ธ ํด๋ฆญ ๋ฐฉ์งํ๊ธฐ (0) | 2021.04.08 |
---|---|
[Android] Jetpack - LiveData (0) | 2021.04.08 |
[Android] 100% ์ด๋ณด์๋ฅผ ์ํ RxJava(RxJava for 100% beginners)-part 1 (0) | 2021.04.08 |
[Android] ๋ ์ด์์ ๊ณ์ธต ์ฑ๋ฅ ์ต์ ํ(Optimizing Layout Hierarchies) (0) | 2021.04.08 |
[Android] Live Data (0) | 2021.04.08 |