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
'ANDROID > UI - UX' 카테고리의 다른 글
[안드로이드] canvas에 선을 따라 원 그리기 (0) | 2018.11.21 |
---|---|
[안드로이드] Custom animation 정의를 통한 액티비티 전환 애니메이션 적용하기, static 클래스 내부에서 overridePendingTransition 사용하기 (0) | 2018.06.27 |
[안드로이드] 레이아웃에 동적으로 이미지뷰 추가하기 (ScalableLayout을 활용한 경우) (0) | 2018.06.25 |
[안드로이드] Canvas를 활용해 커스텀 뷰에 선 그리기 (drawPath) (0) | 2018.06.20 |
[안드로이드] styles.xml 수정으로 간단하게 앱 전체 폰트 수정하기 (2) | 2018.05.17 |