コード例 #1
0
        protected override void OnMoveOffChild(int i)
        {
            MuPageView pageView = (MuPageView)Adapter.GetItem(i);

            if (pageView != null)
            {
                pageView.MoveOffScreen();
            }

            base.OnMoveOffChild(i);
        }
コード例 #2
0
        protected override void OnChildSetup(int i, View v)
        {
            base.OnChildSetup(i, v);

            if (i == this.DisplayedViewIndex && this.DisplayedView != null)
            {
                MuPageView pageView = (MuPageView)this.DisplayedView;
                pageView.OnScreen = true;
                //pageView.MoveToScreen();
            }
        }
コード例 #3
0
        protected override void OnMoveToChild(int i)
        {
            base.OnMoveToChild(i);

            if (_onPageSelected != null)
            {
                _onPageSelected();
            }

            MuPageView pageView = (MuPageView)this.DisplayedView;

            if (pageView != null)
            {
                pageView.MoveToScreen();
            }
        }
コード例 #4
0
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            Log.Debug(TAG, "getView");
            MuPageView pageView;

            if (convertView == null)
            {
                try
                {
                    if (mSharedHqBm == null || mSharedHqBm.Width != parent.Width || mSharedHqBm.Height != parent.Height)
                    {
                        mSharedHqBm = Bitmap.CreateBitmap(parent.Width, parent.Height, Bitmap.Config.Argb8888);
                    }
                }
                catch (Java.Lang.Error er)
                {
                    mSharedHqBm = null;

                    string tag = TAG + " - GetView";

                    if (er.Message != null)
                    {
                        Log.Error(tag, er.Message);
                    }
                }

                try
                {
                    pageView = new MuPageView(mContext, mFilePickerSupport, mCore, new Point(parent.Width, parent.Height), mSharedHqBm, _doc, _docView);
                }
                catch (Java.Lang.OutOfMemoryError ex)
                {
                    Log.Error(TAG, ex.Message);
                    GC.Collect();

                    pageView = new MuPageView(mContext, mFilePickerSupport, mCore, new Point(parent.Width, parent.Height), mSharedHqBm, _doc, _docView);
                }
            }
            else
            {
                pageView = (MuPageView)convertView;
            }

            PointF pageSize = mPageSizes.Get(position);

            if (pageSize != null)
            {
                // We already know the page size. Set it up
                // immediately
                pageView.SetPage(position, pageSize);
            }
            else
            {
                // Page size as yet unknown. Blank it for now, and
                // start a background task to find the size
                pageView.Blank(position);

                /*Android.OS.AsyncTask<Void,Void,PointF> sizingTask = new SafeAsyncTask<Void,Void,PointF>() {
                 *
                 *      protected override PointF doInBackground(Void... arg0) {
                 *              return core.getPageSize(position);
                 *      }
                 *
                 *      @Override
                 *      protected void onPostExecute(PointF result) {
                 *              if (isCancelled()) {
                 *                      return;
                 *              }
                 *              // We now know the page size
                 *              mPageSizes.put(position, result);
                 *              // Check that this view hasn't been reused for
                 *              // another page since we started
                 *              if (pageView.getPage() == position)
                 *                      pageView.setPage(position, result);
                 *      }
                 * };*/

                SizingTask task = new SizingTask(mCore, position, pageView);

                task.Execute();
            }

            _pages.Put(position, pageView);

            return(pageView);
        }
コード例 #5
0
 public SizingTask(MuPDFCore core, int index, MuPageView pageView) : base()
 {
     this.Core     = core;
     this.index    = index;
     this.PageView = pageView;
 }