Copyright (C) 2011 Daniel Berndt - Codeus Ltd - DateSlider 1.1 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. What is DateSlider ? ==================== It is an android dialog which can be used in a similar way to the default DatePicker or TimePicker dialog. Its main advantages are a slide based interface and features such as a minimum or maximum date, or a minute interval for the time picker variant How To Install ============== in the files you can find a sample application (i.e. activity) which implements the DateSlider. Just copy the relevant files into your project and you should be ready to go! The relevant files for the _default_ slider are: In the src/.../DateSlider folder: - DateSlider.java - DefaultDateSlider.java - ScrollLayout.java - ScrollContainer.java - TimeObject.java - TimeView.java In the src/.../DateSlider/labeler folder: - DayLabeler.java - DayDateLabeler.java - Labeler.java - MonthLabeler.java - MonthYearLabeler.java - Util.java In the src/.../DateSlider/labeler folder: - *.java (all files) In the res/ folder: - drawable/*.xml - layout/defaultdateslider.xml - layout/dialogbuttons.xml - layout/dialogtitle.xml - values/*.xml If you want to use any other dateslider implementation just follow the dependencies. (I hope the names of the files should give some clues about whether or not they are needed for a certain implementation) Changes ========= 1.1 --------- the core algorithm was rewritten from scratch to make it faster, smoother, less memory expensive and easier to adapt 1.1.2 - - - - - added a setTime() method to update the time after the dialog has been first invoked fixed a bug which occurred when dealing with time zones other than the default time zone 1.2 --------- A massive thanks to [Ben Demboski] who spend a lot of invaluable work in refactoring this project. He made some big changes in the code base to make it very easy to expand and modify the dateslider's look and behaviour. now the dateslider supports time ranges which can be open it's straight forward to incorporate a minute interval such that only multiples of this interval are displayed. the designed was refined. It is now based on an xml file and shadows at the border were included Feedback ======== Further feedback is highly appreciated and can be sent to < [email protected] > . And please let me know whether the DateSlider makes it into your application!
An alternative DatePicker for Android
We should figure out a way to make the MINUTEINTERVAL configurable for code, or better yet, from XML. However, since in XML labelers are only specified by their class names, this might have to be a generic property that could be set for any type of labeler.
Looking to increase the size of the TimeLayoutView to give more space between the days. I tried adding the following lines of code, but they aren't working:
//This did nothing topView.setMinWidth(200);
//This made the text disappear topView.setLayoutParams(new LayoutParams(200,LayoutParams.WRAP_CONTENT,1.0f));
I'm still trying to figure out how this project works. I need to change the text colors within the ScrollLayout. Currently, the unselected text is a grey and the selected color is black.
Where are these color values stored? How can they be change?
When implementing an
OnDateSetListenerfor a DateSlider, the
Calendarobject that is passed to the listener's
onDateSetmethod is not adjusted to the configured
MINUTEINTERVAL. Instead, the normal date is returned, so you end up getting dates in between the interval, such as 5:10 when the
MINUTEINTERVALis set to 15.
Expected behavior is the
Calendarreturned matches the date chosen by the user, without having to do a
to correct it.
Parent view group might intercept touch events (e.g., ViewPager) when SliderContainer is used as-is (i.e., not within dialog)
I am using the SliderContainer within a Fragment whic itself is transitively contained in a ViewPager/TabHost. The ViewPager intercepts touch events and causes the tabs to change instead of making the sliders scroll.
The application should be able to optionally specify a start and/or end time that defines a (possibly half-open) range of allowable times. If the user tries to scroll back past the range start or forward past the range end, the scroller should just not scroll. This would be very useful for cases where the application needs the user to choose a time in the future, or in the past, and probably for other cases as well.
The README hasn't been updated for the changes in https://github.com/bendemboski/DateSlider/commit/93310dfc20482b44784bc35f7e623c3b7c8a8bf5, and some of it is out-of-date.
It's ok when debug mode and export apk file without proguard. But after proguard, my app fore close when touch DateSlider. (I'm copy source code to my package)
Some users try to select dates clicking in the date (instead scroll to it).
Is there any way to select (scroll to) the child view clicked by the user?
Thanks in advance
Hi, starting ADT17 it is possible to use custom attributes in the layout in android libraries. Your great DateSlider ist much easier to play with and to use. So I little bit reorganized you sources, splitted into into library and demo part. And I added support for maven.
Best regards, Michal Harakal