방명록
- [Android] ProgressBar 색상 변경하기2023년 10월 14일 10시 43분 10초에 업로드 된 글입니다.작성자: 핀수728x90반응형
안드로이드의 위젯 중 진행 상태를 표시하는 프로그래스 바
프로그래스 바의 색상을 변경하려면
android:indeterminateTint="@color/path"
속성을 이용하면 된다.
색상을 코드 단에서 변경하고 싶다면
progressBar.indeterminateDrawable.setColorFilter( resources.getColor(R.color.main, null), android.graphics.PorterDuff.Mode.SRC_IN )
위와 같이 colorFilter를 적용해주면 됐는데
setColorFilter는 API29부터 지원이 중단되었다.
progressBar.indeterminateDrawable.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(ContextCompat.getColor(this, R.color.main), BlendModeCompat.SRC_ATOP)
그래서 29부터는 위와 같이 작성해주면 된다.
정리
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { binding.progressBar.indeterminateDrawable.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(ContextCompat.getColor(this, R.color.main), BlendModeCompat.SRC_ATOP) } else { binding.progressBar.indeterminateDrawable.setColorFilter( resources.getColor(R.color.main, null), android.graphics.PorterDuff.Mode.SRC_IN ) }
공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
말씀해주시면 수정하겠습니다. 감사합니다.
References
아래 글을 참고하여 작성 되었습니다.
[안드로이드/JAVA] ProgressBar 색상 변경하기 - JooTC
안드로이드 ProgressBar 색상 변경 방법 머터리얼 디자인의 프로그레스 바(로딩 바)를 xml로 간단히 구현할 수 있습니다. 프로그레스 바의 색상을 수정하려 하니 Background나 colors에 관한 특별한 설정
jootc.com
setColorFilter is deprecated on API29
I use the following line to change the color of a VectorDrawable: mydrawable.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_ATOP) This works nice, though it is now deprecated. The
stackoverflow.com
728x90반응형'pinslog > Log.daily()' 카테고리의 다른 글
[Android] 디버그 가능 APK 또는 Android App Bundle을 업로드했습니다. 보안상의 이유로 Google Play에 게시하기 전에 디버그를 사용 중지해야 합니다. (0) 2023.10.16 [Android] bringToFront() in xml (0) 2023.10.15 [Android] 기존 버튼에 ripple 효과주기 (0) 2023.10.12 [Kotlin] 마지막 요소를 제거한 리스트를 얻고 싶을 때 (0) 2023.10.10 [Android] Dialog 외부 영역 터치 가능하도록 설정하기 (0) 2023.10.08 다음글이 없습니다.이전글이 없습니다.댓글