it-swarm.com.de

Android CalendarView zum Anzeigen von Ereignissen

Ich möchte einen Kalender mit Ereignissen anzeigen, deren Datum in verschiedenen Farben angezeigt wird, ähnlich wie bei der Standard-Kalenderanwendung. In der Standardkalenderansicht wird jedoch keine solche API angezeigt.

Kann mir jemand bitte die richtige Richtung weisen, wie ich damit verfahren soll? Sollte ich den Standardkalender erweitern und meine eigenen Funktionen hinzufügen? Oder sollte ich 5x5-Textfelder mit PageViewer und Fragmenten verwenden?

26

Das integrierte CalendarView-Widget bietet keine Möglichkeit, die Farbe der Kalenderzellen in der Monatsansicht zu ändern. Siehe die Quelle .

Sie könnten die folgenden Ansätze ausprobieren:

  1. Erweitern Sie CalendarView und implementieren Sie onDraw selbst. Sie müssen das gesamte vorhandene Zeichenverhalten neu implementieren, einschließlich der folgenden 4 Methoden:

     protected void onDraw (Canvas-Canvas) {
     drawBackground (Canvas); 
     drawWeekNumbersAndDates (Canvas); 
     drawWeekSeparators (Canvas); 
     drawSelectedDateVerticalBars ( Segeltuch);
    }
    
  2. Implementieren Sie Ihre eigene Kalenderansicht, mit der Sie Zellen anpassen können. Ich empfehle dieses Projekt als einen guten Startpunkt, da es bereits benutzerdefinierte Zellen unterstützt.

19
nas

Letzten Monat konnte ich mit Caldroid https://github.com/roomorama/Caldroid eine kleine Kalenderansicht implementieren.

Es ist flexibel zu verwenden und es ist nicht so schwer, eine benutzerdefinierte Kalenderansicht zu erhalten, als onDraw aus dem CalendarView zu implementieren.

Überprüfen Sie die von mir erstellte Ansicht (indem Sie einfach der Dokumentation folgen):

Custom calendar view using Caldroid

Und natürlich können Sie darüber hinaus gehen.

12

Ich habe meinen eigenen CalendarView geschrieben, ähnlich dem, der auch in Google-Kalendern zu sehen ist. Bietet die Möglichkeit, zwischen Monaten zu scrollen, Listener, Ereignisse hinzuzufügen und ist ein Gradle-Projekt: https://github.com/SundeepK/CompactCalendarView . Es verwendet Paint, um alle Zeichnungen zu erstellen, sodass es einfach sein sollte, die gewünschten Änderungen vorzunehmen.

5
Sun

Das folgende Projekt ist die beste Alternative, die ich bisher gesehen habe, um ereignisspezifische Grafiken in einer Datumszelle im Kalender anzuzeigen:

https://github.com/tyczj/ExtendedCalendarView

4
Farrukh Najmi

Wie wäre es mit dem Ändern bestimmter Datumsfarben - mithilfe von Android: dateTextAppearance und setDateTextAppearance (int)? Es wurde einmal beschrieben: Ändern der Farbe der Kalenderdaten Android Sie können dies ausprobieren

0
Maro