Android Slider Preference Library
Android library that allows applications to add dialog-based slider widgets to their settings.
Overview
- Slider represents a
float
between0.0
and1.0
- Access with
SliderPreference.getValue()
orSharedPreferences.getFloat()
- Access with
- Supports multiple summaries (e.g. "Low", "Medium", "High") and selects one based on the slider's position
- Java:
SliderPreference.setSummary(CharSequence[] summaries)
- XML:
android:summary="@array/string_array_of_summaries"
- A single
String
still works too
- Java:
- Subclass of
DialogPreference
- Supports all dialog-specific attributes such as
android:dialogMessage
- Visually-consistent with Android's built-in preferences
- Less error-prone than displaying the slider directly on the settings screen
- Supports all dialog-specific attributes such as
- MIT License
How To Use
Android Studio
Using Gradle
- Step: Add this to your root build.gradle
allprojects {
repositories {
// [...]
maven { url "https://jitpack.io" }
}
}
- Step: Add the dependency to your project build.gradle
dependencies {
// [...]
compile 'com.github.jayschwa:AndroidSliderPreference:1.0'
}
Using a Module
-
Paste or clone this library into the
/libs
folder, in the root directory of your project. Create a new folder:/libs
if not already present. (This step is not required - only for keeping cleaner project structure) -
Edit
settings.gradle
by adding the library. You have also define a project directory for the library. Yoursettings.gradle
should look like below:include ':app', ':SliderPreference' project(':SliderPreference').projectDir = new File('libs/AndroidSliderPreference')
-
In
app/build.gradle
add the SliderPreference library as a dependency:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile project(":SliderPreference") }
-
Sync project, clean and build. You can use the SliderPreference as part of your project now.
Eclipse
Before you can add a SliderPreference
to your application, you must first add a library reference:
- Clone or download a copy of the library
- Import the library into Eclipse: File menu -> Import -> Existing Project into Workspace
- Open your application's project properties and add a library reference to "SliderPreference"
Add a slider to your application
It is possible to define the default value directly in the attribute. The summary can also be a regular string, instead of a string array:
Background
Sliders are recommended by Android's official design documentation for specific types of settings:
Use this pattern for a setting where the range of values are not discrete and fall along a continuum.
Despite this recommendation, the Android SDK does not actually provide a Preference
with slider functionality. Various custom implementations can be found around the web, but many have issues such as:
- The slider is displayed directly on the settings screen
- Higher chance of accidental clicks
- No way to confirm or cancel potential changes
- Discrete values are displayed to the user
- Not ideal for this design pattern
This library aims to be as consistent as possible with the design pattern and Android's built-in Preference
implementations.