예제 #1
0
 @Override
 public void scrollManuallyTo(int x, int y) {
   final ZLView view = ZLApplication.Instance().getCurrentView();
   final AnimationProvider animator = getAnimationProvider();
   if (view.canScroll(animator.getPageToScrollTo(x, y))) {
     animator.scrollTo(x, y);
     postInvalidate();
   }
 }
예제 #2
0
 @Override
 public void startAnimatedScrolling(int x, int y, int speed) {
   final ZLView view = ZLApplication.Instance().getCurrentView();
   final AnimationProvider animator = getAnimationProvider();
   if (!view.canScroll(animator.getPageToScrollTo(x, y))) {
     animator.terminate();
     return;
   }
   animator.startAnimatedScrolling(x, y, speed);
   postInvalidate();
 }
예제 #3
0
 @Override
 public void startAnimatedScrolling(
     ZLView.PageIndex pageIndex, ZLView.Direction direction, int speed) {
   final ZLView view = ZLApplication.Instance().getCurrentView();
   if (pageIndex == ZLView.PageIndex.current || !view.canScroll(pageIndex)) {
     return;
   }
   final AnimationProvider animator = getAnimationProvider();
   animator.setup(direction, getWidth(), getMainAreaHeight());
   animator.startAnimatedScrolling(pageIndex, null, null, speed);
   if (animator.getMode().Auto) {
     postInvalidate();
   }
 }
예제 #4
0
 @Override
 protected int computeVerticalScrollOffset() {
   final ZLView view = ZLApplication.Instance().getCurrentView();
   if (!view.isScrollbarShown()) {
     return 0;
   }
   final AnimationProvider animator = getAnimationProvider();
   if (animator.inProgress()) {
     final int from = view.getScrollbarThumbPosition(ZLView.PageIndex.current);
     final int to = view.getScrollbarThumbPosition(animator.getPageToScrollTo());
     final int percent = animator.getScrolledPercent();
     return (from * (100 - percent) + to * percent) / 100;
   } else {
     return view.getScrollbarThumbPosition(ZLView.PageIndex.current);
   }
 }
예제 #5
0
  private void onDrawInScrolling(Canvas canvas) {
    final ZLView view = ZLApplication.Instance().getCurrentView();

    //		final int w = getWidth();
    //		final int h = getMainAreaHeight();

    final AnimationProvider animator = getAnimationProvider();
    final AnimationProvider.Mode oldMode = animator.getMode();
    animator.doStep();
    if (animator.inProgress()) {
      animator.draw(canvas);
      if (animator.getMode().Auto) {
        postInvalidate();
      }
      drawFooter(canvas);
    } else {
      switch (oldMode) {
        case AnimatedScrollingForward:
          {
            final ZLView.PageIndex index = animator.getPageToScrollTo();
            myBitmapManager.shift(index == ZLView.PageIndex.next);
            view.onScrollingFinished(index);
            ZLApplication.Instance().onRepaintFinished();
            break;
          }
        case AnimatedScrollingBackward:
          view.onScrollingFinished(ZLView.PageIndex.current);
          break;
      }
      onDrawStatic(canvas);
    }
  }
예제 #6
0
 @Override
 public void startManualScrolling(int x, int y, ZLView.Direction direction) {
   final AnimationProvider animator = getAnimationProvider();
   animator.setup(direction, getWidth(), getMainAreaHeight());
   animator.startManualScrolling(x, y);
 }