Coder Social home page Coder Social logo

discreteslider's Introduction

DiscreteSlider Android Arsenal

Overview

A slider that allows a user to select a value at one of the specified tickmarks

Screenshots

DiscreteSlider

Setup

Gradle

compile 'com.github.lawloretienne:discreteslider:0.0.9'

Maven

<dependency>
    <groupId>com.github.lawloretienne</groupId>
    <artifactId>discreteslider</artifactId>
    <version>0.0.9</version>
</dependency>

Sample Usage

<com.etiennelawlor.discreteslider.library.ui.DiscreteSlider
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_gravity="bottom"
        android:background="@color/grey_100"
        app:backdropFillColor="@color/grey_200"
        app:backdropStrokeColor="@color/grey_300"
        app:backdropStrokeWidth="1dp"
        app:horizontalBarThickness="4dp"
        app:tickMarkCount="6"
        app:tickMarkRadius="8dp"
        app:position="1"
        app:thumb="@drawable/thumb"
        app:progressDrawable="@drawable/transparent_progress_drawable"/>

Notes

XML Attributes

  • backdropFillColor - the fill color of the slider backdrop
  • backdropStrokeColor - the stroke color of the slider backdrop
  • backdropStrokeWidth - the width of the stroke on the slider backdrop
  • horizontalBarThickness - the thickness of the horizontal bar that makes up the slider backdrop
  • tickMarkCount - the number of tickmarks
  • tickMarkRadius - the radius of each tickmark
  • position - the position of the thumb in the slider (set to the position of the appropriate tickmark)
  • thumb - the drawable that is used as the thumb of the slider
  • progressDrawable - the drawable that is used as the progress indicator of the slider

Developed By

  • Etienne Lawlor

   Email - [email protected]

   Website - https://medium.com/@etiennelawlor

Projects/Apps using DiscreteSlider

Feel free to contact me to add yours to this list.

License

Copyright 2016 Etienne Lawlor

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

discreteslider's People

Contributors

lawloretienne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discreteslider's Issues

No able to update slider tickMarkCount in runtime

Hi

I'm trying to have dynamic number of tickMarkCount, however after change in that value, its not reflected in UI

so when original y slider has 4 positions and in run-time I'm incising it it 5 then, slider moves like there are 5 positions but in UI I still se only four, is there any way to resolve it?

progressDrawable not work properly

hi, lawloretienne
when i set horizontalBarThickness=2dp, tickMarkRaduis=2.5dp, and a normal progressDrawable, the progressDrawable just fit tickMark's height, but not the backdrop's height.

Set progress

hello

how can I set the current progress. Need something like

slider.setCurrentProgress(4);

Thanks a lot

Slider's Set position in one use case is not working

We have a non-linear data to be selected upon like, 1hours,1 day, 1week, 2 weeks,1 month, 6 months, 1 year, 2 year.

So this library comes as a healthy rescue. I have hit upon a problem which I am not sure is the problem with the library or it is with my code. I have tried quite a few things before thinking to write to you.

By default I set the selection for 1 week (i.e. position = 2). This works, and the circle thumb appears at the correct position. This is more like initializing the position of the slider when it is shown to the user. There after the user slides and sets the position. And we capture the user's selection in

setOnDiscreteSliderChangeListener

We get the position as argument and we perform slider.setPosition(position). This also works.

This time we have defined a red area (starts from 1 month to 2 year selection). If the user slides to any of the values in red area, we want to prompt the user that he is not allowed to select these values as he is not a premium user. I am able to read the position value from the changeListener and bring up the pop-up to the user. However sliding the thumb back to its original or for that matter even hardcoded position of 0 does not work for me (visually). the thumb does not slide back, however the position value of the slider is programatically set.

At one end when we initialize the slider, i do see that setPosition works (but this happens on main UI thread). When I try to set a position in the setOnDiscreteSliderChangeListener , i dont see the thumb moving, but the variable value of position gets set. Not sure how do I address this.

How to change Thumb Icon when i select and drag to other position?

I want to change icon of thub when i select and drag to other position but not found any mehod for that.
discreteSlider.setOnDiscreteSliderChangeListener in i can set thumb at position but select and drag time change icon. As like Uber app in select time change thumb icon.

how to set position ?

i want to give position pogramatically.
like set position with number . slider.setPosition(1)

animated setPosition

Hello, its possible make animated setPosition method, to get a same effect when pressing.

Backdrop Fill Color Not Working

Hi,

Trying to set thebackdropFillColor both in XML and programatically, however it is not changing. It always stays the color that's in the demo, grey.

I want it to match the color of a layout in it's background so ideally I'd set the background to transparent but failing that, I would set it to a color of my choosing programatically.

Is this a bug?

Text inside thumb

Hello

I have following queries:

  1. Is there any way by which I can set text inside the thumb as well to display progress?
  2. I want to highlight the progress with another color, e.g. if there are 5 ticks and I am on 4th tick. I want the progress color to be changed till 4th tick (index 3, from offset 0). Currently entire progress is using transparent theme; instead it should use same color as thumb to display the progress made.
  3. I want to change the thumb position. It should float above the slider; like balloon.

Manifest

Hello,
thanks for the library. Its manifest sould not include any section.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.