본문 바로가기
안드로이드

[Android] ProgressBar 막대 색상 변경

by 코딩히어로 2022. 9. 27.
728x90

1


ProgressBar 상태에 따라서 막대 색상이 동적으로 변해야 한다는 요청이 있어서

포스팅을 통해서 막대 색상을 변경하는 방법에 대해 알아보도록 하겠습니다

안드로이드 스튜디오 JAVA를 이용해서 구현하였습니다

<androidx.appcompat.widget.LinearLayoutCompat
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ProgressBar
        android:id="@+id/progress"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        style="@style/Widget.AppCompat.ProgressBar.Horizontal"></ProgressBar>

</androidx.appcompat.widget.LinearLayoutCompat>

먼저 막대 형태의 프로그래스 바를 XML에 정의합니다

다음으로는 프로그래스바의 막대 색상을 변경합니다

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    progress.setProgressTintList(ColorStateList.valueOf(Color.parseColor("#FF3333")));
}

Build Version Check를 통해 Lollipop 이상일 때에만 가능하게 조건을 걸어주는데

Lollipop이하에서는 해당 소스코드가 동작하지 않습니다

위 코드를 통해 원하는 시점에 JAVA코드에서 원하는 색상으로 막대 색상을 변경할 수 있습니다

예를 들면 프로그래스 바가 움직이는 동적인 상황에서는 초록색

멈춰있는 정적인 상황에서는 빨간색으로 표시하는 게 가능합니다

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
	// 정적일 때
    progress.setProgressTintList(ColorStateList.valueOf(Color.parseColor("#FF0000")));
    // 동적일 때
    progress.setProgressTintList(ColorStateList.valueOf(Color.parseColor("#00FF00")));
}
728x90
반응형

댓글