Calendário - Android Studio

Olá galera!
Estou precisando criar um calendário “horizontal scroll” conforme o exemplo abaixo.

Que apareça somente o mês e a semana corrente e que o usuário consiga, através do horizontal scroll passar os dias e meses e etc.

Alguém poderia me ajudar em como criar.

Obrigado.

Fala Thiago,

Eu uso uma biblioteca muito boa chamada Material Calendar View, segue abaixo o link:
https://github.com/prolificinteractive/material-calendarview

Ela é bem simples de usar, você só precisa declarar no seu layout, dessa forma:

<com.prolificinteractive.materialcalendarview.MaterialCalendarView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/calendarView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:mcv_showOtherDates="all"
    app:mcv_selectionColor="#00F" />

Depois pelo Java, você pode declarar os limites, cores e etc…

mcv.state().edit()
  .setFirstDayOfWeek(Calendar.WEDNESDAY)
  .setMinimumDate(CalendarDay.from(2016, 4, 3))
  .setMaximumDate(CalendarDay.from(2016, 5, 12))
  .setCalendarDisplayMode(CalendarMode.WEEKS)
  .commit();

Qualquer coisa avisa ai, que te ajudo a implementar.

Abraços.

1 curtida

Poxa cara muito obrigado pela resposta. Mas não estou conseguindo implementar no Java.
Poria me ajudar?

Obrigado.

Leonardo boa noite.
Consegui implementar!

Mas eu queria que quando a activity fosse aberta que o dia atual (TODAY) ficasse demarcada para o usuário.

Poderia me ajudar?

Obrigado.

Fala Thiago,

Não sei se já resolveu, mas para colocar o dia atual, faça o seguinte:

Calendar calendar = Calendar.getInstance(TimeZone.getDefault());

int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);
int day = calendar.get(Calendar.DAY_OF_MONTH);

String todayDate = day+"/"+month+"/"+year;

Abraços.

Na verdade eu acho que não me fiz entender…
O que eu quero é que quando a Activity onde o calendário está for aberta, que o dia atual fique selecionado no calendário.

Fala Thiago,

Então, com esse código você pega a data de hoje, depois basta setá-la no calendário.

MaterialCalendarView widget = (MaterialCalendarView) findViewById(R.id.id_do_calendario);

widget.setSelectedDate(todayDate);

Abraços.

Ola Leonardo! Esse calendário também me permite marcar várias datas?
Estou querendo, por exemplo, ao consultar uma sala poder visualizar em um calendário quais são os dias em que a sala está reservada, para isso preciso realçar essas datas.
Tem como fazer isso com o MaterialCalendarView?

Eu sou novo em programação e não estou conseguindo implementar essa calendário. Alguém poderia me ajudar?