106 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 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;
 | |
|     }
 | |
|     public void setetCurPage(Bitmap bitmap){
 | |
|         mCurPageBitmap =bitmap;
 | |
|     }
 | |
|     public void setetNextPage(Bitmap bitmap){
 | |
|         mNextPageBitmap =bitmap;
 | |
|     }
 | |
| 
 | |
| }
 |