2013-05-15 6 views
23

Desidero visualizzare un calendario con eventi che utilizzano colori diversi nella data simile all'applicazione calendario predefinita. Ma non vedo alcuna API di questo tipo nella vista calendario predefinita.CalendarView Android per la visualizzazione degli eventi

Qualcuno può indicarmi la direzione giusta su come procedere? Devo estendere il calendario predefinito e aggiungere la mia funzionalità? O dovrei usare 5x5 caselle di testo con PageViewer e frammenti?

+0

Correlato/dupe: [Vista calendario Android] (http://stackoverflow.com/q/3702998) – blahdiblah

+0

Correlato/dupe: [Come visualizzare un'interfaccia utente del calendario in un'applicazione Android?] (Http: // stackoverflow. it/q/6080307) – blahdiblah

risposta

19

Il widget di CalendarView incorporato non mostra la possibilità di modificare il colore delle celle del calendario in visualizzazione mensile. Vedi the source.

si potrebbe provare i seguenti approcci:

  1. Estendere da CalendarView e implementare OnDraw se stessi. Dovrete reimplementare tutti i comportamenti disegno esistente, tra questi 4 metodi:

     
    protected void onDraw(Canvas canvas) { 
        drawBackground(canvas); 
        drawWeekNumbersAndDates(canvas); 
        drawWeekSeparators(canvas); 
        drawSelectedDateVerticalBars(canvas); 
    } 
    
  2. Implementare si possiede CalendarView che permette la personalizzazione di cellule. Suggerisco this project come un buon punto di partenza, poiché supporta già celle personalizzate.

+1

Altri progetti di libreria di tipo CalendarView: [Android-calendar-view] (http://code.google.com/p/android-calendar-view/), [Caldroid] (https: // github.com/roomorama/Caldroid) – blahdiblah

0

Come di cambiare determinate date di colore - utilizzando Android: dateTextAppearance e setDateTextAppearance (int)? E 'stato descritto una volta: change color of calendar dates android Si può provare questo

+0

Non voglio cambiare il colore della cella. Voglio disegnare una parte della cella in base al tempo di ogni evento. –

5

Ho scritto il mio CalendarView molto simile a quello visto nei calendari di Google. Offre la possibilità di scorrere tra mesi, ascoltatori, aggiungere eventi ed è un progetto gradle: https://github.com/SundeepK/CompactCalendarView. Usa la vernice per fare tutto il disegno, quindi dovrebbe essere facile cambiare per fare tutto ciò che vuoi.

+0

Grande biblioteca che hai lì !!! –

10

Il mese scorso sono stato in grado di implementare una piccola visualizzazione del calendario utilizzando Caldroid https://github.com/roomorama/Caldroid.

È flessibile da utilizzare e non è così difficile ottenere una vista calendario personalizzata come l'implementazione di onDraw da CalendarView.

Controllare la vista che ho creato (solo seguendo la documentazione):

Custom calendar view using Caldroid

E naturalmente si può andare oltre.