デフォルトのカレンダーアプリケーションに似た日付に、異なる色を使用してイベントを含むカレンダーを表示したい。しかし、デフォルトのカレンダービューにはそのようなAPIは表示されません。
誰でも私にこれを進める方法を正しい方向に指示できますか?デフォルトのカレンダーを拡張し、独自の機能を追加する必要がありますか?または、PageViewerとフラグメントで5x5のテキストボックスを使用する必要がありますか?
組み込みのCalendarViewウィジェットは、月表示のカレンダーセルの色を変更する機能を公開しません。 ソース を参照してください。
次のアプローチを試すことができます。
CalendarViewから拡張して、onDrawを自分で実装します。次の4つのメソッドを含む、既存のすべての描画動作を再実装する必要があります。
protected void onDraw(Canvas canvas){ drawBackground(canvas); drawWeekNumbersAndDates(canvas); drawWeekSeparators(canvas); drawSelectedDateVerticalBars(キャンバス); }
セルをカスタマイズできるCalendarViewを実装します。 このプロジェクト は、カスタムセルを既にサポートしているため、始めるのに適した場所としてお勧めします。
先月、Caldroid https://github.com/roomorama/Caldroid を使用して、小さなカレンダービューを実装できました。
使用するのに柔軟性があり、onDraw
からCalendarView
を実装するようにカスタムカレンダービューを取得するのはそれほど難しくありません。
作成したビューを確認します(ドキュメントに従ってください)。
そしてもちろん、それを超えることもできます。
Googleカレンダーでも見られるようなCalendarViewを独自に作成しました。月間、リスナー間でイベントを追加し、イベントを追加する機能を提供し、gradleプロジェクトです: https://github.com/SundeepK/CompactCalendarView 。 Paintを使用してすべての描画を行うため、簡単に変更して任意の操作を行うことができます。
次のプロジェクトは、これまで見た中でカレンダーの日付セルにイベント固有のビジュアルを表示するための最良の選択肢です。
特定の日付の色を変更するのはどうですか-Android:dateTextAppearanceとsetDateTextAppearance(int)を使用して?かつて説明されていました: カレンダーの日付の色をAndroidに変更 試してみてください