web-dev-qa-db-ja.com

Androidイベントを表示するためのCalendarView

デフォルトのカレンダーアプリケーションに似た日付に、異なる色を使用してイベントを含むカレンダーを表示したい。しかし、デフォルトのカレンダービューにはそのようなAPIは表示されません。

誰でも私にこれを進める方法を正しい方向に指示できますか?デフォルトのカレンダーを拡張し、独自の機能を追加する必要がありますか?または、PageViewerとフラグメントで5x5のテキストボックスを使用する必要がありますか?

26

組み込みのCalendarViewウィジェットは、月表示のカレンダーセルの色を変更する機能を公開しません。 ソース を参照してください。

次のアプローチを試すことができます。

  1. CalendarViewから拡張して、onDrawを自分で実装します。次の4つのメソッドを含む、既存のすべての描画動作を再実装する必要があります。

     protected void onDraw(Canvas canvas){
     drawBackground(canvas); 
     drawWeekNumbersAndDates(canvas); 
     drawWeekSeparators(canvas); 
     drawSelectedDateVerticalBars(キャンバス);
    }
    
  2. セルをカスタマイズできるCalendarViewを実装します。 このプロジェクト は、カスタムセルを既にサポートしているため、始めるのに適した場所としてお勧めします。

19
nas

先月、Caldroid https://github.com/roomorama/Caldroid を使用して、小さなカレンダービューを実装できました。

使用するのに柔軟性があり、onDrawからCalendarViewを実装するようにカスタムカレンダービューを取得するのはそれほど難しくありません。

作成したビューを確認します(ドキュメントに従ってください)。

Custom calendar view using Caldroid

そしてもちろん、それを超えることもできます。

12

Googleカレンダーでも見られるようなCalendarViewを独自に作成しました。月間、リスナー間でイベントを追加し、イベントを追加する機能を提供し、gradleプロジェクトです: https://github.com/SundeepK/CompactCalendarView 。 Paintを使用してすべての描画を行うため、簡単に変更して任意の操作を行うことができます。

5
Sun

次のプロジェクトは、これまで見た中でカレンダーの日付セルにイベント固有のビジュアルを表示するための最良の選択肢です。

https://github.com/tyczj/ExtendedCalendarView

4
Farrukh Najmi

特定の日付の色を変更するのはどうですか-Android:dateTextAppearanceとsetDateTextAppearance(int)を使用して?かつて説明されていました: カレンダーの日付の色をAndroidに変更 試してみてください

0
Maro