1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 18:29:23 +02:00

AnimationProvider.setup

This commit is contained in:
Nikolay Pultsin 2011-03-30 12:54:52 +01:00
parent e405d15633
commit cc914b0fcb
5 changed files with 29 additions and 14 deletions

View file

@ -23,10 +23,23 @@ import android.graphics.*;
abstract class AnimationProvider { abstract class AnimationProvider {
protected final Paint myPaint; protected final Paint myPaint;
protected int myStartX;
protected int myStartY;
protected int myEndX;
protected int myEndY;
protected boolean myHorizontal;
protected AnimationProvider(Paint paint) { protected AnimationProvider(Paint paint) {
myPaint = paint; myPaint = paint;
} }
public abstract void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap, int startX, int startY, int endX, int endY, boolean horizontal); public void setup(int startX, int startY, int endX, int endY, boolean horizontal) {
myStartX = startX;
myStartX = startY;
myEndX = endX;
myEndY = endY;
myHorizontal = horizontal;
}
public abstract void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap);
} }

View file

@ -27,7 +27,7 @@ class NoneAnimationProvider extends AnimationProvider {
} }
@Override @Override
public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap, int startX, int startY, int endX, int endY, boolean horizontal) { public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap) {
canvas.drawBitmap(fgBitmap, 0, 0, myPaint); canvas.drawBitmap(fgBitmap, 0, 0, myPaint);
} }
} }

View file

@ -27,12 +27,12 @@ class ShiftAnimationProvider extends AnimationProvider {
} }
@Override @Override
public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap, int startX, int startY, int endX, int endY, boolean horizontal) { public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap) {
final int w = fgBitmap.getWidth(); final int w = fgBitmap.getWidth();
final int h = fgBitmap.getHeight(); final int h = fgBitmap.getHeight();
myPaint.setColor(Color.rgb(127, 127, 127)); myPaint.setColor(Color.rgb(127, 127, 127));
if (horizontal) { if (myHorizontal) {
final int dX = endX - startX; final int dX = myEndX - myStartX;
canvas.drawBitmap(bgBitmap, dX > 0 ? dX - w : dX + w, 0, myPaint); canvas.drawBitmap(bgBitmap, dX > 0 ? dX - w : dX + w, 0, myPaint);
canvas.drawBitmap(fgBitmap, dX, 0, myPaint); canvas.drawBitmap(fgBitmap, dX, 0, myPaint);
if (dX > 0 && dX < w) { if (dX > 0 && dX < w) {
@ -41,7 +41,7 @@ class ShiftAnimationProvider extends AnimationProvider {
canvas.drawLine(dX + w, 0, dX + w, h + 1, myPaint); canvas.drawLine(dX + w, 0, dX + w, h + 1, myPaint);
} }
} else { } else {
final int dY = endY - startY; final int dY = myEndY - myStartY;
canvas.drawBitmap(bgBitmap, 0, dY > 0 ? dY - h : dY + h, myPaint); canvas.drawBitmap(bgBitmap, 0, dY > 0 ? dY - h : dY + h, myPaint);
canvas.drawBitmap(fgBitmap, 0, dY, myPaint); canvas.drawBitmap(fgBitmap, 0, dY, myPaint);
if (dY > 0 && dY < h) { if (dY > 0 && dY < h) {

View file

@ -27,13 +27,13 @@ class SlideAnimationProvider extends AnimationProvider {
} }
@Override @Override
public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap, int startX, int startY, int endX, int endY, boolean horizontal) { public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap) {
canvas.drawBitmap(bgBitmap, 0, 0, myPaint); canvas.drawBitmap(bgBitmap, 0, 0, myPaint);
final int w = fgBitmap.getWidth(); final int w = fgBitmap.getWidth();
final int h = fgBitmap.getHeight(); final int h = fgBitmap.getHeight();
myPaint.setColor(Color.rgb(127, 127, 127)); myPaint.setColor(Color.rgb(127, 127, 127));
if (horizontal) { if (myHorizontal) {
final int dX = endX - startX; final int dX = myEndX - myStartX;
canvas.drawBitmap(fgBitmap, dX, 0, myPaint); canvas.drawBitmap(fgBitmap, dX, 0, myPaint);
if (dX > 0 && dX < w) { if (dX > 0 && dX < w) {
canvas.drawLine(dX, 0, dX, h + 1, myPaint); canvas.drawLine(dX, 0, dX, h + 1, myPaint);
@ -41,7 +41,7 @@ class SlideAnimationProvider extends AnimationProvider {
canvas.drawLine(dX + w, 0, dX + w, h + 1, myPaint); canvas.drawLine(dX + w, 0, dX + w, h + 1, myPaint);
} }
} else { } else {
final int dY = endY - startY; final int dY = myEndY - myStartY;
canvas.drawBitmap(fgBitmap, 0, dY, myPaint); canvas.drawBitmap(fgBitmap, 0, dY, myPaint);
if (dY > 0 && dY < h) { if (dY > 0 && dY < h) {
canvas.drawLine(0, dY, w + 1, dY, myPaint); canvas.drawLine(0, dY, w + 1, dY, myPaint);

View file

@ -143,7 +143,7 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
} }
@Override @Override
public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap, int startX, int startY, int endX, int endY, boolean horizontal) { public void draw(Canvas canvas, Bitmap bgBitmap, Bitmap fgBitmap) {
canvas.drawBitmap(bgBitmap, 0, 0, myPaint); canvas.drawBitmap(bgBitmap, 0, 0, myPaint);
} }
} }
@ -208,13 +208,15 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
myScrollingSpeed *= 1.5; myScrollingSpeed *= 1.5;
} }
getAnimationProvider().draw( getAnimationProvider().setup(
canvas,
mySecondaryBitmap, myMainBitmap,
myStartX, myStartY, myStartX, myStartY,
myEndX, myEndY, myEndX, myEndY,
myScrollHorizontally myScrollHorizontally
); );
getAnimationProvider().draw(
canvas,
mySecondaryBitmap, myMainBitmap
);
switch (view.getAnimationType()) { switch (view.getAnimationType()) {
case curl: case curl: