【Kotlin/Android】SeekBarの使い方!値の取得と色などのデザインの調整

この記事からわかること
- Android Studio/KotlinでSeekBarの使い方
- スライダー機能を実装方法
- 色やサイズの変更方法
- 値を取得するには?
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
SeekBarの使い方
AndroidのSeekBar
はスライダーを動かすことで値を変化させることができるUIを実装するためのViewです。レイアウトファイルには以下のようにSeekBar
タグを使用して実装することができます。

<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
最大値/最小値
android:max
属性で最大値をandroid:min
属性で最小値を指定することができます。
android:max="100"
android:min="0"
初期値
android:progress
属性で初期値を指定することができます。
android:progress="50"
つまみとバーの色を変える
android:thumbTint
属性でつまみの色を変えることがandroid:progressTint
属性でバーの色を変えることができます。
android:thumbTint="#FF0000"
android:progressTint="#FF0000"

Kotlinで値を取得する
KotlinでSeekBar
の値を取得するためにはprogress
プロパティを参照します。
val seekbar: SeekBar = findViewById(R.id.seekbar)
Log.e("SeekBar", seekbar.progress.toString())
progress
プロパティを上書きすることでSeekBar
の値をコードから更新することも可能です。
seekbar.progress = 50
イベントリスナー
SeekBar
の変化を検知して値を取得するにはsetOnSeekBarChangeListener
メソッドを使用してOnSeekBarChangeListener
型からデリゲートで取得することができます。取得できるのはそれぞれ以下の通りです。
- onProgressChanged:プログレス値が変化しているとき
- onStartTrackingTouch:スライド開始
- onStopTrackingTouch:スライド終了
seekbar.setOnSeekBarChangeListener(
object : SeekBar.OnSeekBarChangeListener {
// プログレス値が変化しているとき
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
Log.e("SeakBar", p1.toString())
}
// スライド開始
override fun onStartTrackingTouch(p0: SeekBar?) {
}
// スライド終了
override fun onStopTrackingTouch(p0: SeekBar?) {
}
}
)
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。