[Android & Kotlin] ボリューム入力ができるSeekBar

SeekBarはオーディオのボリューム入力のようにつまみを掴んでレベルを変えられるものです。ユーザーの数値入力を感覚的にし簡略化することができます。
 
as413k m29b - [Android & Kotlin] ボリューム入力ができるSeekBar

Android Studio 4.1.3
API 30

 

R904D.E24336V - [Android & Kotlin] ボリューム入力ができるSeekBar

SeekBar

 
SeekBarのツマミは「draggable thumb」(ドラッグ可能な親指?)と呼ばれていて、その位置を判断して数値にします。
 

 

Seekbarのメソッド

 
リスナー、setOnSeekBarChangeListener を設定することでツマミのドラッグ前後とドラッグ中の状態に設定を追加することができます。
 

 
ドラッグ中のonProgressChanged() では progress が見えているのでこの値を使って TextView に表示してみます。

 

サンプルコード

 
まとめのコードです。Kotlin Android Extensions が非推奨になったので代わりのViewBindingを使います。
 
MainActivity.kt

 
activity_main.xml

 
percentageでは 「68 %」 のような文字列の書式を作成しています文字列の書式を設定する
strings.xml

build.gradle

 

サンプル動画

 

 
初期値と最大値はそれぞれ
seekBar.setProgress(0);
seekBar.setMax(100);
にて設定できます
レイアウトをカスタマイズするとバリエーションが増えます。
 
Javaではこのようになります。

ユーザーの数値入力をするときに、オーディオのボリューム入力のように、あるいは、 何%位 という感覚的な入力が適当な場合に SeekBar が使えます。

 
References:
SeekBar | Android Developers
文字列の書式を設定する | Android Developers