コード例 #1
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                Element.ChildAdded        -= PagesChanged;
                Element.ChildRemoved      -= PagesChanged;
                Element.ChildrenReordered -= PagesChanged;

                if (_rootLayout != null)
                {
                    RemoveAllViews();
                    foreach (Page pageToRemove in Element.Children)
                    {
                        var pageRenderer = Platform.GetRenderer(pageToRemove);
                        if (pageRenderer != null)
                        {
                            pageRenderer.View.RemoveFromParent();
                            pageRenderer.Dispose();
                        }
                    }

                    if (_bottomNav != null)
                    {
                        _bottomNav.SetOnNavigationItemSelectedListener(null);
                        _bottomNav.Dispose();
                        _bottomNav = null;
                    }
                    _rootLayout.Dispose();
                    _rootLayout = null;
                }
            }

            base.Dispose(disposing);
        }
コード例 #2
0
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;
                RemoveAllViews();
                foreach (Page pageToRemove in Element.Children)
                {
                    IVisualElementRenderer pageRenderer = Android.Platform.GetRenderer(pageToRemove);
                    if (pageRenderer != null)
                    {
                        pageRenderer.View.RemoveFromParent();
                        pageRenderer.Dispose();
                    }
                    pageToRemove.PropertyChanged -= OnPagePropertyChanged;
                    pageToRemove.ClearValue(Android.Platform.RendererProperty);
                }

                if (_viewPager != null)
                {
                    _viewPager.Adapter.Dispose();
                    _viewPager.Dispose();
                    _viewPager = null;
                }

                if (_tabLayout != null)
                {
                    _tabLayout.AddOnTabSelectedListener(null);
                    _tabLayout.Dispose();
                    _tabLayout = null;
                }

                if (_bottomNavigationView != null)
                {
                    _bottomNavigationView.SetOnNavigationItemSelectedListener(null);
                    _bottomNavigationView.SetOnNavigationItemReselectedListener(null);
                    _bottomNavigationView.Dispose();
                    _bottomNavigationView = null;
                }

                if (_relativeLayout != null)
                {
                    _relativeLayout.Dispose();
                    _relativeLayout = null;
                }

                if (Element != null)
                {
                    PageController.InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
                }

                _previousPage = null;
            }

            base.Dispose(disposing);
        }
コード例 #3
0
        private void ClearPDF()
        {
            if (mDocView != null)
            {
                DisposeReaderView();
                mDocView.Dispose();
                mPDFView.Dispose();
                mAdapter.ReleaseBitmaps();
                mAdapter.Dispose();


                if (_core != null)
                {
                    _core.OnDestroy();
                    _core.Dispose();
                    _core    = null;
                    mAdapter = null;
                    mDocView = null;
                    mPDFView = null;
                }
            }
        }
コード例 #4
0
        public Bitmap createBitmapFromLayoutWithText(Pin pin, float steps, int currentEmojiIndex)
        {
            var inflater = Android.App.Application.Context.GetSystemService(Context.LayoutInflaterService) as Android.Views.LayoutInflater;

            Android.Widget.RelativeLayout view = new Android.Widget.RelativeLayout(Context);
            inflater.Inflate(Resource.Layout.XamarinMapInfoWindow, view, true);

            if (customMap.OnSelect)
            {
                view.Measure(MeasureSpec.MakeMeasureSpec(0, Android.Views.MeasureSpecMode.Unspecified),
                             MeasureSpec.MakeMeasureSpec(0, Android.Views.MeasureSpecMode.Unspecified));
                view.Layout(0, 0, view.MeasuredWidth, view.MeasuredHeight);
                Bitmap bitmap = Bitmap.CreateBitmap(view.MeasuredWidth,
                                                    view.MeasuredHeight,
                                                    Bitmap.Config.Argb8888);
                Canvas c = new Canvas(bitmap);
                view.Draw(c);
                c.Dispose();
                return(bitmap);
            }
            else
            {
                //var emoji1 = view.FindViewById<TextView>(Resource.Id.Emoji);
                //var cpin = pin as PinModel;
                //switch (currentEmojiIndex)
                //{
                //    case (0):
                //    if (cpin.Emojis.Count > 0)
                //    {
                //        emoji1.Text = cpin.Emojis[0];
                //        emoji1.TextSize = 25;
                //        emoji1.TranslationY = -steps;
                //    }
                //        break;

                //    case (1):
                //    if (cpin.Emojis.Count > 0)
                //    {
                //        emoji1.Text = cpin.Emojis[1];
                //        emoji1.TextSize = 25;
                //        emoji1.TranslationY = -steps;
                //    }
                //        break;

                //    case (2):
                //    if (cpin.Emojis.Count > 1)
                //    {
                //        emoji1.Text = cpin.Emojis[2];
                //        emoji1.TextSize = 25;
                //        emoji1.TranslationY = -steps;
                //    }
                //        break;
                //    case (3):
                //    if (cpin.Emojis.Count > 2)
                //    {
                //        emoji1.Text = cpin.Emojis[3];
                //        emoji1.TextSize = 25;
                //        emoji1.TranslationY = -steps;
                //    }
                //        break;
                //}
                view.Measure(MeasureSpec.MakeMeasureSpec(0, Android.Views.MeasureSpecMode.Unspecified),
                             MeasureSpec.MakeMeasureSpec(0, Android.Views.MeasureSpecMode.Unspecified));
                view.Layout(0, 0, view.MeasuredWidth, view.MeasuredHeight);
                Bitmap bitmap = Bitmap.CreateBitmap(view.MeasuredWidth,
                                                    view.MeasuredHeight,
                                                    Bitmap.Config.Argb8888);
                Canvas c = new Canvas(bitmap);
                view.Draw(c);
                c.Dispose();
                view.Dispose();
                return(bitmap);
            }
        }