본문 바로가기

ANDROID/UI - UX

[안드로이드] PorterDuff.Mode로 적용 가능한 다양한 옵션을 활용하자


progress.getIndeterminateDrawable().setColorFilter(Color.rgb(60, 179, 113), android.graphics.PorterDuff.Mode.SRC_IN);


프로그레스 바의 커스텀 색을 입히기 위해 활용했던 android.graphics.PorterDuff.Mode 를


새로 적용한 프로그레스 바의 테마에는 잘 어울리지 않아 


다른 모드들이 있는지 찾아보게 되었고


관련되어 정리가 잘 되있는 안드로이드 developer 페이지를 찾았다.



기존에 적용해주던 옵션은 android.graphics.PorterDuff.Mode.MULTIPLY 였는데


하나의 원만 도는 기존 프로그레스 바와 달리 겹쳐서 두 개의 프로그레스 바가 돌아가는 듯한


현상이 생겨



하나의 drawable 만을 그리고자 android.graphics.PorterDuff.Mode.SRC_IN 을 적용하였다.




developer 페이지에는 파란색 네모(Sorce image)와 붉은 원(Destination Image)을 예로 들어 모드들을 설명하고 있는데,


SRC_IN의 경우는 두 이미지를 겹치게 그렸을 때 파란색 네모와 붉은 원이 겹치는 공간을


파란색 네모의 색으로 채우는 옵션이라고 볼 수 있다.



결국에 위의 코드를 통해 프로그레스 바의 색을 바꾸는 건 기존 프로그레스 바에 커다란 더미 이미지를 씌워 바꾸는 


방식으로 볼 수 있겠다. 여기다 옵션에 따라 보여지는 모습이 달라질 수 있는 것이다.


< 참조 >


https://developer.android.com/reference/android/graphics/PorterDuff.Mode