Android CalendarView pour afficher les événements
je veux montrer un calendrier avec des événements en utilisant des couleurs différentes à la date similaire à L'application Calendrier par défaut. Mais je ne vois pas une telle API sur la vue calendrier par défaut.
est-ce que quelqu'un peut m'indiquer la bonne direction comment procéder? Dois-je étendre le calendrier par défaut et ajouter ma propre fonctionnalité? Ou devrais-je utiliser des boîtes de texte 5x5 avec PageViewer et des fragments?
5 réponses
le widget CalendarView intégré n'expose pas la possibilité de changer la couleur des cellules du calendrier en mode mois. Voir la source .
vous pourriez essayer les approches suivantes:
-
Étendre à partir de CalendarView et de mettre en œuvre onDraw vous-même. Vous devrez réimposer tous les comportements de dessin existants, y compris ces 4 méthodes:
protected void onDraw(Canvas canvas) { drawBackground(canvas); drawWeekNumbersAndDates(canvas); drawWeekSeparators(canvas); drawSelectedDateVerticalBars(canvas); }
-
implémentez votre propre CalendarView qui permet de personnaliser les cellules. Je suggère ce projet comme un bon endroit pour commencer, car il soutient déjà des cellules personnalisées.
le mois dernier j'ai pu implémenter une petite vue de calendrier en utilisant Caldroid https://github.com/roomorama/Caldroid .
c'est flexible à utiliser et il n'est pas si difficile d'obtenir une vue de calendrier personnalisée que la mise en œuvre onDraw
du CalendarView
.
Vérifiez la vue que j'ai créée (juste en suivant la documentation):
et bien sûr vous peut aller au-delà.
j'ai écrit mon propre CalendarView un peu comme celui que J'ai vu dans Google calendars. Donne la possibilité de faire défiler entre les mois, les auditeurs, ajouter des événements et est un projet gradle: https://github.com/SundeepK/CompactCalendarView . Il utilise la peinture pour faire tout le dessin de sorte qu'il devrait facile à changer pour faire tout ce que vous voulez.
le projet suivant est la meilleure alternative que j'ai vu jusqu'à présent pour permettre l'affichage d'images spécifiques à un événement dans une cellule de date sur le calendrier:
Que Diriez - vous de changer la couleur de certaines dates-en utilisant android: dateTextAppearance et setDateTextAppearance (int)? Il a été décrit: la couleur de changement de dates du calendrier android Vous pouvez l'essayer