我在android中使用 List<HighlightDates> highlightDates = new ArrayList<>();
int i=0;
for(CalendarDay day : calendarDays){
HighlightDates highlightDate = new HighlightDates(calendarDays, context, list.get(i));
highlightDates.add(highlightDate);
calendar.addDecorator(highlightDate);
i++;
}
//here is event class to show text on that date
public class HighlightDates implements DayViewDecorator {
private Context context;
Object value;
List<CalendarDay> dayList;
public HighlightDates(List<CalendarDay> day, Context context, Object value) {
this.context = context;
this.value=value;
this.dayList=day;
}
@Override
public boolean shouldDecorate(CalendarDay day) {
return dayList.contains(day);
}
@Override
public void decorate(DayViewFacade view) {
// view.addSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.red)));
view.addSpan(new DotSpan(String.valueOf(value)));
}
}
//here my custom method to add text below the date instead of dot
public DotSpan(String value){
this.value=value;
}
@Override
public void drawBackground(
Canvas canvas, Paint paint,
int left, int right, int top, int baseline, int bottom,
CharSequence charSequence,
int start, int end, int lineNum
) {
int oldColor = paint.getColor();
if (color != 0) {
paint.setColor(color);
}
canvas.drawCircle((left + right) / 2, bottom + radius, radius, paint);
paint.setColor(oldColor);
Paint white = new Paint();
white.setColor(Color.WHITE);
canvas.drawRect(left,top,right,bottom, white);
canvas.drawText(value,left+right/4,top+bottom/2, paint);
}
我想添加文本而不是点来显示事件它只提供点跨度我已经使自定义文本跨度显示文本但它重叠了该日期的所有文本。
//这里我将装饰器添加到日历
/**
* @SWG\Post(
* path="/api-routes/verify-report",
* consumes={"multipart/form-data"},
* description="Verify report",
* operationId="verifyReport",
* @SWG\Parameter(
* description="Application report id",
* format="int64",
* in="path",
* name="report_id",
* required=true,
* type="string"
* ),
* produces={"application/json"},
* @SWG\Response(
* response="200",
* description="successful operation"
* ),
* summary="Verify report",
* tags={
* "Verify report"
* }
* )
* */
public function verifyReport() {
}