void DrawScale(Canvas canvas, MotoRect rect) { //if (MoonAge == MoonAges.Full & FaceStyle == FaceStyles.Moon) if (MoonAge == MoonAges.Full) { return; } canvas.DrawPath(scalePath, scalePaint); #region graph gray mm = 46~59 int minute = NextFullMoon.Minute; if (minute >= 46) { scaleGrayPath.Reset(); float startAngle = scaleStartAngle + (55 - minute) * 6; if (startAngle < scaleStartAngle) { startAngle = scaleStartAngle; } float sweepAngle = 30; if (minute <= 49) { sweepAngle = (minute - 45) * 6; } else if (minute >= 56) { sweepAngle = (60 - minute) * 6; } scaleGrayPath.AddArc(scaleRectF, startAngle, sweepAngle); canvas.DrawPath(scaleGrayPath, scaleGrayPaint); } #endregion canvas.DrawTextOnPath( NextFullMoon.ToString(FORMAT_HHMM, ci), scaleTextPath, 0, 0, scaleTextPaint); }
void DrawReminder(Canvas canvas, MotoRect rect) { DateTime now = WatchfaceUtility.ConvertToDateTime(Calendar); int totalMins = (int)NextFullMoon.Subtract(now).TotalMinutes; if (totalMins > 40 | totalMins < 0) { return; } reminderPath.Reset(); //float startAngle = (45 - min) * 6; //float sweepAngle = min * 6; int nowMin = now.Minute; int nextMin = NextFullMoon.Minute; float startAngle = 0f; float sweepAngle = 0f; if (nowMin < 15 & nextMin <= 15) { startAngle = 270f + nowMin * 6f; sweepAngle = (nextMin - nowMin) * 6f; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); } else if (nowMin < 15) { startAngle = 270f + nowMin * 6f; sweepAngle = 360f - startAngle; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); startAngle = 0f; sweepAngle = (nextMin - 15) * 6f; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); } else if (nextMin <= 15) { startAngle = (nowMin - 15) * 6f; sweepAngle = 270f - startAngle; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); startAngle = 270f; sweepAngle = nextMin * 6f; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); } else if (nextMin < nowMin) { startAngle = (nowMin - 15) * 6f; sweepAngle = 360f - startAngle; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); startAngle = 0f; sweepAngle = (nextMin - 15) * 6f; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); } else { startAngle = (nowMin - 15) * 6f; sweepAngle = (nextMin - nowMin) * 6f; reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); } //float startAngle = (nextMin * 6f) + 15f; //float sweepAngle = totalMins * 6; //reminderPath.AddArc(reminderRectF, startAngle, sweepAngle); canvas.DrawPath(reminderPath, reminderPaint); }
void DrawList(Canvas canvas, MotoRect rect) { Rect grayRect; DateTime dateTime; for (int i = 0; i < 6; i++) { dateTime = NextFullMoon.AddMinutes(INTERVAL_MINUTES * i); canvas.DrawRect(listRects[i], listPaint); #region gray mm = 46~59 if (dateTime.Minute >= 46) { grayRect = new Rect(listRects[i]); if (dateTime.Minute <= 54) { grayRect.Left += (55 - dateTime.Minute) * (listRects[i].Width() / 10); } if (dateTime.Minute >= 51) { grayRect.Right -= (dateTime.Minute - 50) * (listRects[i].Width() / 10); } canvas.DrawRect(grayRect, listGrayPaint); } #endregion int margin = 3; int y = listRects[i].Top + listRects[i].Height() - margin; //if (i == 0) //{ // canvas.DrawText( // dateTime.ToString(FORMAT_MMDD), // dateLeft, y, listTextPaint); //} //else //{ // if (dateTime.AddMinutes(INTERVAL_MINUTES * -1).Day != dateTime.Day) // { // canvas.DrawText( // dateTime.ToString(FORMAT_MMDD), // dateLeft, y, listTextPaint); // } //} if (i == 0 | i != 0 & dateTime.AddMinutes(INTERVAL_MINUTES * -1).Day != dateTime.Day) { canvas.DrawText( dateTime.ToString(FORMAT_MMDD), dateLeft, y, listTextPaint); } canvas.DrawText( dateTime.ToString(FORMAT_HHMM), timeLeft, y, listTextPaint); } }