Awesome Open Source
Awesome Open Source

Horizontal Picker

What is this?

HorizontalPicker is a custom-build Android View used for choosing dates (similar to the native date picker) but draws horizontally into a vertically narrow container. It allows easy day picking using the horizontal pan gesture.

Too see it in action, download the demo app to try it out.

This is what it looks like.

Screenshot_1 Screenshot_2


  • Date selection using a smooth swipe gesture
  • Date selection by clicking on a day slot
  • Date selection from code using the HorizontalPicker java object
  • Month and year view
  • Today button to jump to the current day
  • Localized day and month names
  • Configurable number of generated days (default: 120)
  • Configurable number of offset generated days before the current date (default: 7)
  • Customizable set of colors, or themed through the app theming engine

Note: This library uses the JodaTime library to work with days.


  • Android 4.1 or later (Minimum SDK level 16)
  • Android Studio (to compile and use)
  • Eclipse is not supported

Getting Started

In your app module's Gradle config file, add the following dependency:

dependencies {
    compile 'com.github.jhonnyx2012:horizontal-picker:1.0.6'

Then to include it into your layout, add the following:


In your activity, you need to initialize it and set a listener, like this:

public class MainActivity extends AppCompatActivity implements DatePickerListener {
    protected void onCreate(@Nullable final Bundle savedInstanceState) {
        // setup activity

        // find the picker
        HorizontalPicker picker = (HorizontalPicker) findViewById(;

        // initialize it and attach a listener

    public void onDateSelected(@NonNull final DateTime dateSelected) {
        // log it for demo
        Log.i("HorizontalPicker", "Selected date is " + dateSelected.toString());

Finally, you can also configure the number of days to show, the date offset, or set a date directly to the picker. For all options, see the full configuration below.

    // at init time

    // or on the View directly after init was completed
    picker.setDate(new DateTime().plusDays(4));
Copyright 2017 Jhonny Barrios

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

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.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Java (698,001
Android (41,705
Date (1,014
Datetime (659
Datepicker (631
Picker (590
Smooth (71
Horizontal (67
Today (11
Horizontalpicker (3
Related Projects