Android CalendarView для отображения событий
Я хочу показать календарь с событиями, использующими разные цвета на дату, похожую на приложение календаря по умолчанию. Но я не вижу такого API в представлении календаря по умолчанию.
может кто-нибудь, пожалуйста, направьте меня в правильном направлении, как это сделать? Должен ли я расширить календарь по умолчанию и добавить свои собственные функции? Или я должен использовать текстовые поля 5x5 с PageViewer и фрагментами?
5 ответов
встроенный виджет CalendarView не предоставляет возможность изменять цвет ячеек календаря в представлении месяца. См.источник.
вы можете попробовать следующие подходы:
-
расширить из CalendarView и реализовать onDraw самостоятельно. Вам придется переопределить все существующее поведение чертежа, включая следующие 4 метода:
protected void onDraw(Canvas canvas) { drawBackground(canvas); drawWeekNumbersAndDates(canvas); drawWeekSeparators(canvas); drawSelectedDateVerticalBars(canvas); }
реализуйте собственный CalendarView, который позволяет настраивать ячейки. Я предлагаю этот проект как хорошее место для начала работы, так как он уже поддерживает пользовательские ячейки.
в прошлом месяце я смог реализовать небольшое представление календаря с помощью Caldroid https://github.com/roomorama/Caldroid.
он гибкий в использовании, и не так сложно получить пользовательский вид календаря, как реализация onDraw
с CalendarView
.
Проверьте представление, которое я создал (просто следуя документации):
и, конечно, вы можете идти дальше.
Я написал свой собственный CalendarView так же, как и в Google календарях. Дает возможность прокручивать между месяцами, слушателями, добавлять события и является проектом gradle:https://github.com/SundeepK/CompactCalendarView. Он использует краску, чтобы сделать весь рисунок, поэтому его легко изменить, чтобы сделать все, что вы хотите.
следующий проект-лучшая альтернатива, которую я видел до сих пор, чтобы позволить отображать визуальные эффекты для конкретных событий в ячейке даты в календаре:
Как насчет изменения цвета определенных дат-с помощью android: dateTextAppearance и setDateTextAppearance (int)? Это было однажды описано: изменить цвет календарных дат android Вы можете попробовать это