아래 안드로이드 질문글을 보고 호기심이 생겨 프로그레스 바를 바꾸는 법을 찾아봤습니다.
위의 글의 코드대로 프로그레스바의 ProgressDrawable을 불러와서 적용하였고 첨부한 동영상대로 작동하는것을 확인하였습니다.
동영상에서 위의 프로그레스바는 위 링크글의 소스 그대로 넣은 코드이고, 아래 프로그레스바는 입력값의 25%마다 색을 변경하도록
한 프로그레스바 입니다.
AsyncTask를 이용해서 소스를 작성해보면
위 코드에서 핵심이 되는 코드는 제목에서 밝혔듯 프로그레스바의 색을 변화시켜주는 setProgressBarColor 함수입니다. 프로그레스바를 받아
프로그레스바의 ProgressDrawable의 Layer를 다시 재정의 해서 색을 변경시켜주는 역할을 합니다. 이 함수가 동작하기 위해서는 res > drawable 폴더에
를 만들어 넣고 레이아웃에서 ProgressBar의 progressDrawable로 설정해주셔야 합니다. 이렇게 하면 프로그레스바의 배경을 투명처리하고
progressshape라 명명한자리에 사용자가 변경할 모양을 덮어씌워 주는데요, 프로그레스가 갱신되고 사용자가 설정한 색으로 변경된것처럼
프로그레스바가 그려지게 됩니다.
여기까지가 오유에 쓰는 첫글이 된 일반적인 레이아웃에 명시적으로 적용된 프로그레스바의 색을 변경하는 방법이었습니다.
읽어주셔서 감사합니다.