728x90
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
반응형
'안드로이드' 카테고리의 다른 글
[Android] android.os.NetworkOnMainThreadException 해결 (3) | 2022.10.06 |
---|---|
[Android] Manifest merger failed with multiple errors 해결 (2) | 2022.10.06 |
[Android] 다이얼로그 뷰바인딩 wrap_content 고정되는 문제 해결 (6) | 2022.09.23 |
[Android] Dialog layout ViewBinding 사용하기 (1) | 2022.09.23 |
[Android] EditText 입력 끝나는 시점에 이벤트 받기 (10) | 2022.09.23 |
댓글