Android定義自定義RangeSeekBar的步長值(增量)

介紹

Alex Florescu在https://github.com/anothem/android-range-seek-bar上提出的Android RangeSeekBar定制

它允許在移動搜索條時定義步長值(增量)

備註

1-在attrs.xml中添加increment屬性

<attr name="increment" format="integer|float"/>

2-在RangeSeekBar.java中定義默認值並同時創建屬性

private static final int DEFAULT_INCREMENT = 1;
private int increment;

3-在private void init中啟動增量值(Context context,AttributeSet attrs)

if (attrs == null) 
    increment = DEFAULT_INCREMENT;
else 
    increment = a.getInt(R.styleable.RangeSeekBar_increment, DEFAULT_INCREMENT);

4-定義protected synchronized void onDraw中的增量值(@NonNull Canvas canvas)

您必須替換minText和maxText值。所以代替:

  • minText = valueToString(getSelectedMinValue());
  • maxText = valueToString(getSelectedMaxValue());

你將擁有:int x;

        x = (int) ((getSelectedMinValue().intValue()+increment)/increment);
        x = x*increment;
        if (x<absoluteMaxValue.intValue()) 
            minText = ""+x;
        else
            minText=""+(absoluteMaxValue.intValue()-increment);
        
        
        x = (int) ((getSelectedMaxValue().intValue()+increment)/increment);
        x = x*increment;
        maxText = ""+x;

5 - 現在你只需要使用它。希望能幫助到你

定義自定義RangeSeekBar的步長值(增量) 相關例子