/// <summary> /// Fire event once layout is inflated /// </summary> protected override async void OnAppearing() { base.OnAppearing(); if (!isDrawing) { return; } await Waiter(); Instance = new Helpers.ImageBuilder(canvasTitle); canvasTitle.Controller.BackgroundColor = SKColors.BlueViolet; string[] title = { "F", "A", "S", "T", "", "T", "A", "L", "K", "E", "R" }; sizeOfStrip = Constants.DeviceLayout.GetSizeByGrid(canvasTitle.CanvasSize, 0.05f, 5.0f); sizeOfPanel = Constants.DeviceLayout.GetSizeByGrid(canvasTitle.CanvasSize, 10f, 10f); xPos = sizeOfStrip.Width; foreach (string letter in title) { if (letter != "") { tempImage = App.ImageBuilderInstance.BuildStaticIcon(resource: "FastTalkerSkiaSharp.DisplayImages." + letter + ".png", xPercent: 0.9f, yPercent: 1f, tag: -1); tempImage.X = canvasTitle.CanvasSize.Width / 2f - tempImage.Width / 2f - (float)(Rng.Next(0, jitterSpan) - jitterSpan / 2); tempImage.Y = canvasTitle.CanvasSize.Height / 2f - tempImage.Height / 2f - (float)(Rng.Next(0, jitterSpan) - jitterSpan / 2); tempImage.BorderColor = SKColors.Black; tempImage.BorderWidth = 2f; canvasTitle.Controller.Icons.Add(tempImage); } } Animater(canvasTitle.Controller.Icons[currentItem], xPos - (float)(Rng.Next(0, jitterSpanSide) - jitterSpanSide / 2), (sizeOfStrip.Height / 3f) - (float)(Rng.Next(0, jitterSpan) - jitterSpan / 2)); }
/// <summary> /// Clean up /// </summary> protected override void OnDisappearing() { base.OnDisappearing(); IconBackground.Dispose(); iconBackground = null; IconOutline.Dispose(); iconOutline = null; _currentIcon = null; tempImage.Bitmap.Dispose(); tempImage = null; rng = null; Instance = null; canvasTitle.Icons.Clear(); }