Inspired by Virgil Pana shot
![](https://github.com/ramotion/navigation-stack/raw/master/Swift@2x.png?raw=true)
Looking for developers for your project?
This project is maintained by Ramotion, Inc. We specialize in the designing and coding of custom UI for Mobile Apps and Websites.
![](https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png?raw=true)
The Android mockup available here.
- Android 4.1 Jelly Bean (API lvl 16) or greater
- Your favorite IDE
​ Just download the package from here and add it to your project classpath, or just use the maven repo:
Gradle:
implementation 'com.ramotion.fluidslider:fluid-slider:0.3.0'
SBT:
libraryDependencies += "com.ramotion.fluidslider" % "fluid-slider" % "0.3.0"
Maven:
<dependency>
<groupId>com.ramotion.fluidslider</groupId>
<artifactId>fluid-slider</artifactId>
<version>0.3.0</version>
<type>aar</type>
</dependency>
Place the FluidSlider
in your layout.
To track the current position of the slider, set the positionListener
, as shown below:
val slider = findViewById<FluidSlider>(R.id.fluidSlider)
slider.positionListener = { p -> Log.d("MainActivity", "current position is: $p" )}
You can also track the beginning and completion of the movement of the slider, using the following properties:
beginTrackingListener
and endTrackingListener
. Example below:
slider.beginTrackingListener = { /* action on slider touched */ }
slider.endTrackingListener = { /* action on slider released */ }
Here is simple example, how to change FluidSlider
range.
// Kotlin
val max = 45
val min = 10
val total = max - min
val slider = findViewById<FluidSlider>(R.id.fluidSlider)
slider.positionListener = { pos -> slider.bubbleText = "${min + (total * pos).toInt()}" }
slider.position = 0.3f
slider.startText ="$min"
slider.endText = "$max"
// Java
final FluidSlider slider = findViewById(R.id.fluidSlider);
slider.setBeginTrackingListener(new Function0<Unit>() {
@Override
public Unit invoke() {
Log.d("D", "setBeginTrackingListener");
return Unit.INSTANCE;
}
});
slider.setEndTrackingListener(new Function0<Unit>() {
@Override
public Unit invoke() {
Log.d("D", "setEndTrackingListener");
return Unit.INSTANCE;
}
});
// Or Java 8 lambda
slider.setPositionListener(pos -> {
final String value = String.valueOf( (int)((1 - pos) * 100) );
slider.setBubbleText(value);
return Unit.INSTANCE;
});
Here are the attributes you can specify through XML or related setters:
bar_color
- Color of slider.bubble_color
- Color of circle "bubble" inside bar.bar_text_color
- Color ofstart
andend
texts of slider.bubble_text_color
- Color of text inside "bubble".start_text
- Start (left) text of slider.end_text
- End (right) text of slider.text_size
- Text size.duration
- Duration of "bubble" rise in milliseconds.initial_position
- Initial positon of "bubble" in range form0.0
to1.0
.size
- Height of slider. Can besmall
(40dp) andnormal
(56dp).
This library is a part of a selection of our best UI open-source projects.
​ Fluid Slider for Android is released under the MIT license. See LICENSE for details.
Try our UI components in our mobile app. Contact us if interested.
![](https://raw.githubusercontent.com/Ramotion/react-native-circle-menu/master/google_play@2x.png)
![](https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png?raw=true)