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 OnDaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { // add weather image for certain days in the current month var today = DateTime.Today; if (e.Date.Year == today.Year && e.Date.Month == today.Month && e.Date.Day >= 14 && e.Date.Day <= 23) { var iv = new UIImageView(); var tv = new UILabel(); var slot = new UIStackView(new UIView[] { tv, iv }); slot.Axis = InterfaceOrientation == UIInterfaceOrientation.Portrait || InterfaceOrientation == UIInterfaceOrientation.PortraitUpsideDown ? UILayoutConstraintAxis.Vertical : UILayoutConstraintAxis.Horizontal; tv.Text = e.Date.Day.ToString(); UIImage image; switch (e.Date.Day % 5) { default: case 0: image = UIImage.FromFile(@"Images/Cloudy.png"); break; case 1: image = UIImage.FromFile(@"Images/PartlyCloudy.png"); break; case 2: image = UIImage.FromFile(@"Images/Rain.png"); break; case 3: image = UIImage.FromFile(@"Images/Storm.png"); break; case 4: image = UIImage.FromFile(@"Images/Sun.png"); break; } image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); iv.UserInteractionEnabled = true; iv.TintColor = UIColor.Black; iv.ContentMode = UIViewContentMode.ScaleAspectFit; iv.Image = image; e.DaySlot = slot; } }
private void OnDaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { // add weather image for certain days in the current month if (e.Date.Year == DateTime.Today.Year && e.Date.Month == DateTime.Today.Month && e.Date.Day >= 14 && e.Date.Day <= 23) { var slot = LayoutInflater.Inflate(Resource.Layout.DaySlot, null); var iv = slot.FindViewById <ImageView>(Resource.Id.Image); var tv = slot.FindViewById <TextView>(Resource.Id.Day); tv.Text = e.Date.Day.ToString(); switch (e.Date.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; } e.DaySlot = slot; } }
public void OnDaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { if (!e.IsAdjacentDay) { if (WeatherForecast.ContainsKey(e.Date)) { var daySlotWithImage = new CalendarImageDaySlot(e.Date); daySlotWithImage.DayText = e.Date.Day + ""; daySlotWithImage.DayFontSize = 8; //daySlotWithImage.ImageAspect = Aspect.Fill; //daySlotWithImage.ImageSource = UriImageSource.FromUri(WeatherForecast[e.Date]); daySlotWithImage.ImageSource = WeatherForecast[e.Date]; e.DaySlot = daySlotWithImage; } else { e.DaySlot.BindingContext = new MyDataContext(e.Date); } } else { e.DaySlot.BindingContext = new MyDataContext(e.Date); } }
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; }
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; }