728x90
ProgressBar와 매우 유사하지만 사용자가 값을 직접지정할 수 있는 기능을 갖추고 있다.
주요 속성
style : SeekBar의 모양을 설정한다.
max : 최대 값
progress : 현재 값
주요 프로퍼티
progress : 현재 값을 관리한다.
주요 메서드
incrementProgressBy : 지정한 값 만큼 증가 혹은 감소시킨다.
주요 이벤트
SeekBarChange : SeekBar의 상태가 변경되었을 때
package com.example.seekbar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.SeekBar
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
textView.text = "SeekBar 1 ${seekBar.progress}"
textView2.text = "SeekBar 2 ${seekBar2.progress}"
}
button2.setOnClickListener {
seekBar.progress=3
seekBar2.progress=8
}
button3.setOnClickListener {
seekBar.incrementProgressBy(1)
seekBar2.incrementProgressBy(1)
}
button4.setOnClickListener {
seekBar.incrementProgressBy(-1)
seekBar2.incrementProgressBy(-1)
}
seekBar.setOnSeekBarChangeListener(listener1)
seekBar2.setOnSeekBarChangeListener(listener1)
}
val listener1 =object : SeekBar.OnSeekBarChangeListener{
// Progressbar의 값이 변경
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
when (seekBar?.id) {
R.id.seekBar -> {
textView.text = "첫 번째 SeekBar가 ${progress}로 설정되었습니다\n"
}
R.id.seekBar2 -> {
textView.text = "두 번째 SeekBar가 ${progress}로 설정되었습니다\n"
}
}
if (fromUser == true) {
textView.append("사용자에 의해 설정되었습니다")
} else {
textView.append("코드에 의해 의해 설정되었습니다")
}
}
// 사용자가 터치 했을 때
override fun onStartTrackingTouch(seekBar: SeekBar?) {
when (seekBar?.id) {
R.id.seekBar -> {
textView2.text = "첫 번째 SeekBar 사용자 터치 시작"
}
R.id.seekBar2 -> {
textView2.text = "두 번째 SeekBar 사용자 터치 시작"
}
}
}
// 사용자가 터치를 끝냈을 때
override fun onStopTrackingTouch(seekBar: SeekBar?) {
when (seekBar?.id) {
R.id.seekBar -> {
textView2.text = "첫 번째 SeekBar 사용자 터치 종료"
}
R.id.seekBar2 -> {
textView2.text = "두 번째 SeekBar 사용자 터치 종료"
}
}
}
}
}

728x90
'안드로이드 > Widget' 카테고리의 다른 글
안드로이드 ScrollView (0) | 2022.06.02 |
---|---|
안드로이드 RatingBar (0) | 2022.06.02 |
안드로이드 ProgressBar (0) | 2022.06.02 |
안드로이드 Chip (0) | 2022.05.31 |
안드로이드 CheckedTextView (0) | 2022.05.31 |