Reputation: 402
I want to put 2 drawables in my sek bar. First will be minimum time and second drawable will show Max time selected by user. For this I am using THIS LIBRARY. But No luck. How can I get my desired result ? What I did is here.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Setup the new range seek bar
RangeSeekBar<Integer> rangeSeekBar = new RangeSeekBar<>(this);
// Set the range
rangeSeekBar.setRangeValues(15, 90);
rangeSeekBar.setSelectedMinValue(20);
rangeSeekBar.setSelectedMaxValue(88);
// Add to layout
FrameLayout layout = (FrameLayout) findViewById(R.id.seekbar_placeholder);
layout.addView(rangeSeekBar);
// Seek bar for which we will set text color in code
RangeSeekBar rangeSeekBarTextColorWithCode = (RangeSeekBar) findViewById(R.id.rangeSeekBarTextColorWithCode);
rangeSeekBarTextColorWithCode.setTextAboveThumbsColorResource(android.R.color.holo_blue_bright);
rangeSeekBar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() {
@Override
public void onRangeSeekBarValuesChanged(RangeSeekBar<Integer> bar, Integer minValue, Integer maxValue) {
int hours = minValue / 4; // it will return hours.
int minutes = (minValue % 4) * 15;
Toast.makeText(getApplicationContext(), hours + " Hours - " + hours + ":" + minutes, Toast.LENGTH_SHORT).show();
}
});
}
Upvotes: 0
Views: 1023
Reputation: 259
To get desired result you have to convert your minimum time and maximum time to minute.
String start[] = "6:00".split(":");
int min = Integer.parseInt(start[0]) * 60 + Integer.parseInt(start[1]);
String end[] = "23:49".split(":");
int max = Integer.parseInt(end[0]) * 60 + Integer.parseInt(end[1]);
rangeSeekBar.setSelectedMinValue(min);
rangeSeekBar.setSelectedMaxValue(max);
Now in
onRangeSeekBarValuesChanged(RangeSeekBar<Integer> bar, Integer minValue, Integer maxValue)
{
int minHour=minValu/60; //since both are ints, you get an int
int minMinute=minValu % 60;
int maxHour=maxValu/60; //since both are ints, you get an int
int maxMinute= maxValu % 60 ;
}
Upvotes: 2