web-dev-qa-db-ja.com

ディスクリートSeekBar

Androidアプリ用に ディスクリートシークバー を作成しようとしています。

Example

SeekBarの最大値と最小値を設定できることはわかっています(私の理想的な解決策は、以下のClickの例です)が、バーを使用して、特定の間隔でスライダーを上下に移動します。私の場合は10ごとです。したがって、SeekBarで使用できるオプションは次のとおりです。

  • 20
  • 30
  • 40
  • 50
  • 60
  • 70

特定の値を標準Android SeekBarに定義すること、または少なくともアイテム間の間隔を変更することは可能ですか?そうでない場合は、カスタムシークバーで可能ですか?これに対処するものがオンラインで見つかりませんでした(Android少なくとも-Googleマテリアルデザインガイドラインで認識されているコンポーネントとしてイライラする)。

10
Jonny Wright

このリンクを確認してください サードパーティのライブラリを使用せずにギャップ数のある個別のシークバーを実装する場合は、シークバーのスタイルプロパティを使用します。

<SeekBar
     Android:id="@+id/sb"
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content"
     Android:max="10"
     Android:thumb="@drawable/ic_location"
     Android:theme="@style/Widget.AppCompat.SeekBar.Discrete" />

enter image description here

16
Nilesh Senta

Android SeekBarは間隔を設定できませんが、範囲が[0、10]になるように、最大​​値を10に設定できます。また、値を取得する場合はいつでもSeekBarの値に10を掛けて、0、10、20、30、..の間隔で「シミュレート」できるようにします。

4
RogueBaneling