• Stars
    star
    308
  • Rank 135,712 (Top 3 %)
  • Language
    Java
  • Created over 7 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CalendarView Personalizado para desarrolladores android

OneCalendarView

CalendarView Personalizado para desarrolladores android OneCalendarView es un CalendarView Personalizado que perimite a los desarrolladores android tener el mismo CalendarView en cualquier aplicacion android (API 16 o superior).

Capturas de pantalla

demo 9 demo 10 demo 11 demo 12
demo 13 demo 14 demo 15 demo 16

Live Demo app

usted puede ver una aplicacion demo en el siguiente enlace https://appetize.io/app/cymqjzvzaybypepxhnmn4hewx0

Instalación

en su archivo /app/build.gradle

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
       compile 'com.github.MorochoRochaDarwin:OneCalendarView:3.1.1'
}

Agregar la vista OneCalendarView a su Layout

  <com.darwindeveloper.onecalendar.views.OneCalendarView
        android:id="@+id/oneCalendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

En sus Actividades o Fragments

Inicialice la vista y llame a sus 2 metodos obligatorios para capturar los eventos en el calendario (NOTA: de no llamar a estos metodos se producira un error en tiempo de ejecución).

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final OneCalendarView calendarView = (OneCalendarView) findViewById(R.id.oneCalendar);



        //el siguiente fragmento puede ser usado para capturar los swipes en el calendar
        calendarView.setOnCalendarChangeListener(new OneCalendarView.OnCalendarChangeListener() {

            /**
             * notifica al usuario que el calendario a cambiado al mes anterior
             */
            @Override
            public void prevMonth() {
                //hacer algo aqui
            }

            /**
             * notifica al usuario que el calendario a cambiado al mes siguiente
             */
            @Override
            public void nextMonth() {
                //hacer algo aqui
            }
        });


        //el siguiente fragmento de codigo muestra como obtener los datos de un dia en el calendario
        //ademas de realizar otras acciones
        calendarView.setOneCalendarClickListener(new OneCalendarView.OneCalendarClickListener() {

            /**
             * cuando se da click en un dia en el calendario mostrado
             *
             * @param day      un Objeto de tipo Day del cual podemos llara a su metodo getDate() para recuperar una fecha
             * @param position posicion desde 0-41, que ocupa en el calendario actual
             */
            @Override
            public void dateOnClick(Day day, int position) {
                //recuerde que en java los meses inician desde 0
            }

            /**
             * cuando se da click prolongado en un dia en el calendario mostrado
             *
             * @param day      un Objeto de tipo Day del cual podemos llara a su metodo getDate() para recuperar una fecha
             * @param position posicion desde 0-41, que ocupa en el calendario actual
             */
            @Override
            public void dateOnLongClick(Day day, int position) {

            }
        });

    }

También puede llamar a los dos metodos anterioes implementando las interfaces OneCalendarView.OnCalendarChangeListener y OneCalendarView.OneCalendarClickListener

calendarView.setOnCalendarChangeListener(this);
calendarView.setOneCalendarClickListener(this); 

Diseño completo

Usted puede agregar varios atributos a la vista en sus layouts y crear diseños unicos. A continuación un ejemplo completo

 <com.darwindeveloper.onecalendar.views.OneCalendarView
        android:id="@+id/oneCalendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:backgroundColorDaysOfAnotherMonth="@color/colorPrimary"
        app:backgroundColorDaysOfMonth="#53c0c0c1"
        app:backgroundColorSelectedDay="#d2d2d2"
        app:calendarBackgroundColor="@color/colorPrimary"
        app:calendarLanguage="EN"
        app:currentDayBackgroundColor="#fad501"
        app:mainBackgroundColor="@color/colorPrimary"
        app:textColorDaysOfAnotherMonth="#fff"
        app:textColorDaysOfMonth="#fff"
        app:textColorMonthAndYear="@color/colorPrimary"
        app:textColorSelectedDay="#000000" />

Metodos

La clase OneCalendarView dispone de los siguientes metodos para facilitar y reducir la codificacion al usuario

Metodo Descripción
void setMonthYear(int month, int year) este metodo configura el OneCalendarView a un mes y un año especifico
String getStringMonth(int numMonth) retorna un mes como un string de pendiendo del idioma establecido en el OneCalendar (en java los meses inician en 0)
void setLanguage(int language) permite cambiar el lenguaje del OneCalendarView (SPANISH=0, ENGLISH=1)
int getCurrentMonth() retorna el mes actual
int getCurrentYear() retorna el año actual
int getCurrentDayMonth() retorna el dia del mes actual
int getNumberOfDaysMonthYear(int year, int month) calcula el numero de dias que tiene un mes de una año especifico
String getNameDay(int day, int month, int year) retorna el nombre de un dia especifico de una año (en ingles o español segun la configuracion)
int getMonth() retorna el mes visible en el calendario
int getYear() retorna el año del mes visible en el calendario
void addDaySelected(int position) este metodo pinta un dia en el mes visible del calendario (posicion es un valor entre 0-41)
void removeDaySeleted(int position) este metodo remueve o despinta un dia en el mes visible del calendario (posicion es un valor entre 0-41)
boolean isDaySelected(int position) comprueba si un dia en el calendario del mes visible esta seleccionado

Interfaces

OneCalendarClickListener(OBLIGATORIA)

implementa todos los metodos necesarios para cuando se de clic o un clic prolongado en una fecha del calendario.

        /**
         * cuando se da click en un dia del mes mostrado
         *
         * @param day      un Objeto de tipo Day del cual podemos llara a su metodo getDate() para recuperar una fecha
         * @param position posicion desde 0-41, que ocupa en el calendario actual
         */
        void dateOnClick(Day day, int position);

        /**
         * cuando se da click prolongado en un dia del mes mostrado
         *
         * @param day      un Objeto de tipo Day del cual podemos llara a su metodo getDate() para recuperar una fecha
         * @param position posicion desde 0-41, que ocupa en el calendario actual
         */
        void dateOnLongClick(Day day, int position);

OnCalendarChangeListener(OBLIGATORIA)

implementa todos los metodos necesarios para notificar que ha habido un cambio en el mes del calendario

         /**
         * notifica al usuario que el calendario a cambiado al mes anterior
         */
        void prevMonth();

        /**
         * notifica al usuario que el calendario a cambiado al mes siguiente
         */
        void nextMonth();

More Repositories

1

flutter-facebook-auth

A flutter plugin to add login with facebook in your flutter app
Objective-C
194
star
2

flutter-meedu

Dart
35
star
3

flutter-desde-cero-2022

Dart
32
star
4

HorizontalScrollMenu

Java
31
star
5

flutter-meedu-player

Dart
21
star
6

flutter-google-maps-null-safety

Dart
20
star
7

curso-flutter-desde-cero-2021

Dart
19
star
8

RNSwipeVerify

JavaScript
14
star
9

flutter-avanzado

C++
11
star
10

flutter-cinema

Dart
10
star
11

douglas-peucker-dart

Dart
9
star
12

curso-flutter-avanzado

Dart
9
star
13

flutter-puzzle-hack

Dart
9
star
14

curso-flutter-ui-avanzadas

Dart
8
star
15

firebase-auth-with-flutter-meedu

Dart
7
star
16

flutter-super-hero-call

Dart
7
star
17

flutter-animations

Dart
6
star
18

riverpod-demo

C++
6
star
19

backend-simple-webrtc

JavaScript
5
star
20

backend-super-hero-call

TypeScript
5
star
21

backend-curso-flutter

JavaScript
5
star
22

dart-ip-geolocation-api

Dart
5
star
23

introduccion-al-desarrollo-backend-con-nodejs-y-express

JavaScript
4
star
24

dashicons

Dart
4
star
25

curso-flutter-meedu

Dart
4
star
26

flutter-puzzle-tutorial

Dart
4
star
27

flutter-tiktok-clone

Dart
4
star
28

flutter-simple-webrtc

Dart
3
star
29

curso-flutter-desde-cero

Dart
3
star
30

flutter-unit-and-widget-testing

Dart
3
star
31

nuevo-curso-flutter-meedu

HTML
3
star
32

flutter-digitalocean-spaces

TypeScript
3
star
33

flutter-i18n

C++
3
star
34

flutter-ui-avanzadas

Dart
2
star
35

curso-nodejs

JavaScript
2
star
36

flutter-avanzado-webrtc-parte-2

Dart
2
star
37

web-super-hero-call

TypeScript
2
star
38

meedu-snippets

2
star
39

frontend-curso-flutter

CSS
2
star
40

basic-websocket

TypeScript
2
star
41

flutter-navigator-2

C++
2
star
42

supabase-clean-architecture-demo

C++
2
star
43

darwin-morocho

1
star
44

flutter-streams

C++
1
star
45

meedu-connect-server

TypeScript
1
star
46

sembast-demo

Dart
1
star
47

refresh-tokens

TypeScript
1
star
48

flutter-ui-challenge-music-player

Dart
1
star
49

flutter-w2w

Dart
1
star
50

flutter-android-simple-native-camera

Java
1
star
51

flutter-cloud-messaging

Dart
1
star
52

Facebook-SDK-Android

guia basica de como utilizar el sdk de facebook en tus aplicaciones android
Java
1
star
53

curso-android-nativo-compose

Kotlin
1
star