1.
Вот что я выяснил из источника Календарь
Создает настроенное представление (DayView
для повестки дня на день) для всего макета в xml.
Затем он рисует холст, используя прямоугольник и текст, как в приложении, когда вызывается onDraw()
.
Представление реализует OnClickListener
и OnLongClickListener
для события. Когда вы щелкаете по холсту, он переносит вашу позицию щелчка в Событие с соответствующей датой и временем (таким образом, он вычисляет множество связанных размеров для события, маржи, события целого дня, когда вызывается переопределение onSizeChanged()
), затем запускает Активность, если такое событие существует, в противном случае создается новое событие.
2. Вам нужно создать представление расширений классов, скажем, DayView
, затем вы должны добавить это в attrs.xml
<resources>
<declare-styleable name="DayView">
</declare-styleable>
</resources>
Затем вы можете использовать его как тег XML в макете с именем вашего пакета. как здесь:
<xxxxxxx.DayView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@id/ui_schedule_dayview">
Здесь вы можете найти образец для этого