안녕하세요, 반갑습니다!
프로그래스바(ProgressBar) 와 비슷한 UI 가 하나 있습니다.
프로그래스바(ProgressBar)와 마친가지로 진행도를 나타내는 UI 인데요.
단순히 진행도만을 보여주는 프로그래스바(ProgressBar)와 달리 직접 조절까지 가능한 UI 입니다.
그래서 볼륨 조절, 화면 밝기 조절이 가장 대표적이지 않을까 싶습니다.
음악 및 동영상 플레이어에서 재생 시간을 조절하는 용도로도 정말 많이 볼 수 있습니다.
시크바(SeekBar) 한방에 끝내기!
볼륨 조절, 화면 밝기 등 모바일 앱에서는 정말 많이 쓰이는 기능 중 하나가 아닐까 합니다.
그래서 저도 화면 밝기를 조절할 수 있는 시크바(SeekBar) 를 만들어 보도록 하겠습니다.
간단합니다.
같이 한번 만들어 보시죠.
1. .xml 파일에 시크바(SeekBar) 배치하기
심플하게 시크바(SeekBar) 와 화면 밝기 상태만을 화면에 그렸습니다.
<레이아웃 이미지>
이때 시크바의 최대치를 지정할 수가 있는데요.
max = "100" 속성으로 조절할 수 있습니다.
화면 밝기니까 최대 100이면 되겠죠?
<SeekBar
android:id="@+id/seek"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="31dp"
android:max="100" />
이렇게 끝까지 올리게 되면 100이 됨을 확인할 수 있습니다.
2. 시크바(SeekBar) 에 Listener() 연결하기
이제 시크바를 진짜로 움직여서 조절을 해봐야겠습니다.
시크바(SeekBar) 는 setOnSeekBarChangeListener() 로 제어할 수 있습니다.
'setOn..' 까지만 입력하면 단 하나의 굵은 글씨가 나오기 때문에 헷갈릴 일도 없습니다.
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
//시크바 상태가 변경될 때 호출 됨
Log.d("Main", "현재 값 : ${progress}")
brightTxt.text = "${progress}"
.
.
.
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
//시크바를 터치할 때 호출 됨
Log.d("Main", "시작!")
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
//시크바에서 손을 뗄때 호출
Log.d("Main", "끝!")
}
})
완성! 끝났습니다!
이렇게 간단해도 될까 싶을 정도 입니다.
감사합니다.
반응형