private void Calendar_DaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { // get day Java.Util.Date date = e.Date; Java.Util.Calendar cal = Java.Util.Calendar.GetInstance(Java.Util.Locale.English); cal.Time = date; int day = cal.Get(Java.Util.CalendarField.DayOfMonth); // create day slot layout container CalendarDaySlotBase layout = new CalendarDaySlotBase(ApplicationContext); layout.SetGravity(GravityFlags.Top); layout.SetVerticalGravity(GravityFlags.Top); layout.Orientation = Orientation.Vertical; layout.SetPadding(5, 5, 5, 5); LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FillParent, LinearLayout.LayoutParams.FillParent); layout.LayoutParameters = linearLayoutParams; // create text element TextView tv = new TextView(ApplicationContext); //LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent); //vv.LayoutParameters = linearLayoutParams; tv.Gravity = GravityFlags.Top; tv.Text = day.ToString(); if (e.AdjacentDay) { // format adjacent day text tv.SetTextColor(Android.Graphics.Color.DarkGray); } // add text element to layout layout.AddView(tv); // add weather image for certain days if (day >= 14 && day <= 23) { ImageView iv = new ImageView(ApplicationContext); switch (day % 5) { case 0: iv.SetImageResource(Resource.Drawable.Cloudy); break; case 1: iv.SetImageResource(Resource.Drawable.PartlyCloudy); break; case 2: iv.SetImageResource(Resource.Drawable.Rain); break; case 3: iv.SetImageResource(Resource.Drawable.Storm); break; case 4: iv.SetImageResource(Resource.Drawable.Sun); break; } layout.AddView(iv); } // finally, set layout to day slot e.DaySlot = layout; }
private void CalendarDaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { var currentDateTime = FromUnixTime(e.Date.Time).ToLocalTime(); Java.Util.Date date = e.Date; Java.Util.Calendar cal = Java.Util.Calendar.GetInstance(Java.Util.Locale.English); cal.Time = date; int day = cal.Get(Java.Util.CalendarField.DayOfMonth); CalendarDaySlotBase layout = new CalendarDaySlotBase(ApplicationContext); layout.SetGravity(GravityFlags.Center); layout.SetVerticalGravity(GravityFlags.Center); layout.Orientation = Orientation.Vertical; layout.SetPadding(5, 5, 5, 5); LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); layout.LayoutParameters = linearLayoutParams; TextView tv = new TextView(ApplicationContext); tv.Gravity = GravityFlags.Center; tv.Text = day.ToString(); if (currentDateTime.Date == DateTime.Now.Date) { tv.SetTextColor(Android.Graphics.Color.Red); } if (e.AdjacentDay) { tv.SetTextColor(Android.Graphics.Color.DarkGray); } layout.AddView(tv); if (_events != null && _events.Count != 0) { for (int i = 0; i < _events.Count; i++) { var startDate = _events[i].StartDateTime(); if (startDate.Date == currentDateTime.Date) { tv.SetBackgroundColor(GROUP_COLOR); } } } e.DaySlot = layout; }
private void Calendar_DaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { // get day Java.Util.Date date = e.Date; Java.Util.Calendar cal = Java.Util.Calendar.GetInstance(Java.Util.Locale.English); cal.Time = date; int day = cal.Get(Java.Util.CalendarField.DayOfMonth); // create day slot layout container CalendarDaySlotBase layout = new CalendarDaySlotBase(ApplicationContext); layout.SetGravity(GravityFlags.Top); layout.SetVerticalGravity(GravityFlags.Top); layout.Orientation = Orientation.Vertical; layout.SetBackgroundColor(Android.Graphics.Color.White); layout.SetPadding(5, 5, 5, 5); LinearLayout.LayoutParams linearLayoutParams1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FillParent, LinearLayout.LayoutParams.FillParent); layout.LayoutParameters = linearLayoutParams1; // create text element TextView tv = new TextView(ApplicationContext); LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent); tv.LayoutParameters = linearLayoutParams; tv.Gravity = GravityFlags.Center; //текст цифр tv.Text = day.ToString(); tv.SetTextColor(Android.Graphics.Color.Black); if (e.AdjacentDay) { // format adjacent day text tv.SetTextColor(Android.Graphics.Color.Gray); //цвет неактивных дней } // add text element to layout layout.AddView(tv); String Year = e.Date.ToString().Split(' ')[5]; String Month = e.Date.ToString().Split(' ')[1]; string intMonth = "0"; // add weather image for certain days for (int i = 0; i < records.Count; i++) { if (records[i].Year == Year) { switch (Month) { case "Jan": intMonth = "1"; break; case "Feb": intMonth = "2"; break; case "Mar": intMonth = "3"; break; case "Apr": intMonth = "4"; break; case "May": intMonth = "5"; break; case "Jun": intMonth = "6"; break; case "Jul": intMonth = "7"; break; case "Aug": intMonth = "8"; break; case "Sep": intMonth = "9"; break; case "Okt": intMonth = "10"; break; case "Now": intMonth = "11"; break; case "Dec": intMonth = "12"; break; default: break; } if (records[i].Month == intMonth && day.ToString() == records[i].Day) { layout.SetBackgroundColor(Android.Graphics.Color.LightBlue); } } } // finally, set layout to day slot e.DaySlot = layout; }