-
Notifications
You must be signed in to change notification settings - Fork 17
Marks
MikeSu edited this page Aug 24, 2016
·
15 revisions
Current in module there are 4 example marks.
- Today (Purple ring)
- Selected day (Black circle)
- Custom 1 (Red dot)
- Custom 2 (Green rectangle)
java/.../common/Marks.java
enum CustomMarks define Custom 1 and Custom 2
There are specific methods for:
Today mark: markToday()
Selected mark: refreshMarkSelected()
Custom 1 / Custom 2: refreshCustomMark()
to Add or Remove custom mark call refreshCustomMark() with correct parameters
dateTime is cell date
customMarks is enum, which mark edit
mark is boolean to set mark visible or not
XML
res/layout/mark_cell_view.xml
every view (mark) has own background drawable:
res/drawable/mark_today.xml
res/drawable/mark_selected.xml
res/drawable/mark_custom1.xml
res/drawable/mark_custom2.xml
remember to set ID
set here margins, paddings and gravity (Frame Layout)
MarkSetup
java/.../model/MarkSetup.java
Mark's flags visibility
(Important)
line: 69 | public boolean canBeDeleted()
Add here negation mark's flag, it's triggered to remove useless Mark's Objects
DayCellView Bind
java/.../view/cell/DayCellView.java
bind here views from xml
private View markToday;
private View markSelected;
private View markCustom1;
private View markCustom2;
...
markToday = findViewById(R.id.mark_today_view);
markSelected = findViewById(R.id.mark_selected_view);
markCustom1 = findViewById(R.id.mark_custom1);
markCustom2 = findViewById(R.id.mark_custom2);
DayCellView Setup
java/.../view/cell/DayCellView.java
Visibility:
line: 117 | private void setMarkToView()
Remember to set mark visibility from MarkSetup
(Additionally)
some parameters like sizes must be set programmatically
example:
private void setupCustom1Mark(int size) {
LayoutParams markCustomParams = (LayoutParams) markCustom1.getLayoutParams();
int markCustomPercentSize = (int) (size * Marks.MARK_CUSTOM1_SIZE_PROPORTION_TO_CELL);
markCustomParams.height = markCustomPercentSize;
markCustomParams.width = markCustomPercentSize;
}
private void setupCustom2Mark(int size) {
LayoutParams markCustomParams = (LayoutParams) markCustom2.getLayoutParams();
markCustomParams.height = (int) (size * Marks.MARK_CUSTOM2_HEIGHT_PROPORTION_TO_CELL);
markCustomParams.width = (int) (size * Marks.MARK_CUSTOM2_WIDTH_PROPORTION_TO_CELL);
}
