안드로이드에서는 머터리얼 디자인의 프로그레스 바(로딩 바)를 xml
로 간단히 구현할 수 있습니다. 여기서 프로그레스 바의 색상을 수정하려 하니 Background나 colors에 관한 특별한 설정이 없어서 제동이 걸리는 경우가 있습니다.
ProgressBar의 색상을 변경하려면 어떻게 해야 할까요?
안드로이드 ProgressBar 색상 변경 방법
핵심은 다음의 간단한 코드입니다. xml
파일에서 ProgressBar의 속성에 indeterminateTint
값을 지정해주시면 됩니다.
android:indeterminateTint="@color/colorPrimary"
여기서 @color/colorPrimary
는 res/colors.xml
파일에 이미 지정되어있는 값입니다. 해당 파일에는 다음과 같이 선언되어 있을 것입니다.
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#0D63F8</color> </resources>
이렇게 따로 미리 지정된 값을 만드는 것이 권장되지만 indeterminateTint
값에 #0D63F8
값을 직접 넣어도 무방합니다.
만약 자바코드로 구현하고 싶은 경우 ProgresBar 객체에서 다음 메소드를 작성해줍니다.
progressBar.getIndeterminateDrawable().setColorFilter( getResources().getColor(R.color.colorPrimary), android.graphics.PorterDuff.Mode.SRC_IN);
getResources().getColor()
메소드는 res/colors.xml
파일의 colorPrimary 컬러 값을 가져오도록 합니다. 복잡하지만 기억하면 차후에 유용할 것입니다.
참고자료
- ProgressBar (Android Developers) – https://developer.android.com/reference/android/widget/ProgressBar
- How to change android indeterminate ProgressBar color? (StackOverflow) – https://stackoverflow.com/questions/2638161/how-to-change-android-indeterminate-progressbar-color