コード例 #1
0
            public void Run()
            {
                if (mScroller.IsFinished())
                {
                    return;                     // remaining post that should not be handled
                }
                ImageView imageView = photoViewAttacher.GetImageView();

                if (null != imageView && mScroller.ComputeScrollOffset())
                {
                    int newX = mScroller.GetCurrX();
                    int newY = mScroller.GetCurrY();
                    if (photoViewAttacher.DEBUG)
                    {
                        LogManager.GetLogger().d(
                            LOG_TAG,
                            "fling run(). CurrentX:" + mCurrentX + " CurrentY:"
                            + mCurrentY + " NewX:" + newX + " NewY:"
                            + newY);
                    }
                    photoViewAttacher.mSuppMatrix.PostTranslate(mCurrentX - newX, mCurrentY - newY);
                    photoViewAttacher.SetImageViewMatrix(photoViewAttacher.GetDrawMatrix());
                    mCurrentX = newX;
                    mCurrentY = newY;
                    Compat.PostOnAnimation(imageView, this);
                }
            }
コード例 #2
0
            public void Run()
            {
                ImageView imageView = photoViewAttacher.GetImageView();

                if (imageView == null)
                {
                    return;
                }

                float t          = Interpolate();
                float scale      = mZoomStart + t * (mZoomEnd - mZoomStart);
                float deltaScale = scale / photoViewAttacher.GetScale();

                photoViewAttacher.mSuppMatrix.PostScale(deltaScale, deltaScale, mFocalX, mFocalY);
                photoViewAttacher.CheckAndDisplayMatrix();

                // We haven't hit our target scale yet, so post ourselves again
                if (t < 1f)
                {
                    Compat.PostOnAnimation(imageView, this);
                }
            }