如何将 seekbar 分成 2 个不同的部分并在 Android 中使用 2 个不同的默认步骤?

How to divide seekbar into 2 different parts and with 2 different default steps in Android?

我正在创建一个带有 2 个拇指的自定义搜索栏,搜索栏范围是 0-10000000,我的问题是我想将该搜索栏分成 2 个相等的部分,第一部分范围是 0 -1000000,默认步长为 10000,第二部分范围为 1000001-10000000,默认步长为 100000。

GitHub 上有一个库,您可以使用它解决 problem.Here 是 link 到库 here

为你的 build.gradle 添加一个依赖:

dependencies {
    compile 'com.crystal:crystalrangeseekbar:1.1.3'
}

回答您的问题:-

  1. 这是一个双拇指范围搜索栏。

  2. 您可以使用属性

    设置搜索栏的最小最大范围
    app:min_value="0" //minimum value
    app:max_value="150" // maximum value
    
  3. 您可以使用以下属性设置步长

    app:steps="5"// add required step size here
    

您的 XML 搜索栏代码将如下所示:-

<com.crystal.crystalrangeseekbar.widgets.BubbleThumbSeekbar
    android:id="@+id/rangeSeekbar3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:corner_radius="10"
    app:min_value="0"
    app:max_value="100"
    app:steps="5"
    app:bar_color="#F7BB88"
    app:bar_highlight_color="#E07416"
    app:left_thumb_image="@drawable/thumb"
    app:left_thumb_image_pressed="@drawable/thumb_pressed"
    app:data_type="_integer"/>

在 java class 中你可以像这样实现 setOnSeekbarChangeListener():-

final CrystalSeekbar seekbar = new CrystalSeekbar(getActivity());

// get min and max text view
final TextView tvMin = (TextView) rootView.findViewById(R.id.textMin5);
final TextView tvMax = (TextView) rootView.findViewById(R.id.textMax5);

// set listener
seekbar.setOnSeekbarChangeListener(new OnSeekbarChangeListener() {
    @Override
    public void valueChanged(Number minValue) {
        tvMin.setText(String.valueOf(minValue));
    }
});

希望这可能有所帮助!!谢谢。