package com.novelbook.android.view.animation; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.PointF; import android.widget.Scroller; public abstract class AnimationProvider { // static enum Mode { // NoScrolling(false), // ManualScrolling(false), // AnimatedScrollingForward(true), // AnimatedScrollingBackward(true); // // final boolean Auto; // // Mode(boolean auto) { // Auto = auto; // } // } public static enum Direction { none(true),next(true), pre(true), up(false), down(false); public final boolean IsHorizontal; Direction(boolean isHorizontal) { IsHorizontal = isHorizontal; } }; public static enum Animation { none, curl, slide, shift } // private Mode myMode = Mode.NoScrolling; protected int duation =200;//翻页动画速度 protected Bitmap mCurPageBitmap,mNextPageBitmap; protected float myStartX; protected float myStartY; protected int myEndX; protected int myEndY; protected Direction myDirection; protected float mySpeed; protected int mScreenWidth; protected int mScreenHeight; protected PointF mTouch = new PointF(); // 拖拽点 private Direction direction = Direction.none; private boolean isCancel = false; public AnimationProvider(Bitmap mCurrentBitmap,Bitmap mNextBitmap,int width,int height) { this.mCurPageBitmap = mCurrentBitmap; this.mNextPageBitmap = mNextBitmap; this.mScreenWidth = width; this.mScreenHeight = height; } //绘制滑动页面 public abstract void drawMove(Canvas canvas); //绘制不滑动页面 public abstract void drawStatic(Canvas canvas); //设置开始拖拽点 public void setStartPoint(float x,float y){ myStartX = x; myStartY = y; } //设置拖拽点 public void setTouchPoint(float x,float y){ mTouch.x = x; mTouch.y = y; } //设置方向 public void setDirection(Direction direction){ this.direction = direction; } public Direction getDirection(){ return direction; } public void setCancel(boolean isCancel){ this.isCancel = isCancel; } public abstract void startAnimation(Scroller scroller); public boolean getCancel(){ return isCancel; } }