1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 10:19:33 +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 {
protected final Paint myPaint;
protected int myStartX;
protected int myStartY;
protected int myEndX;
protected int myEndY;
protected boolean myHorizontal;
protected AnimationProvider(Paint 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
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);
}
}

View file

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

View file

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

View file

@ -143,7 +143,7 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
}
@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);
}
}
@ -208,13 +208,15 @@ public class ZLAndroidWidget extends View implements View.OnLongClickListener {
myScrollingSpeed *= 1.5;
}
getAnimationProvider().draw(
canvas,
mySecondaryBitmap, myMainBitmap,
getAnimationProvider().setup(
myStartX, myStartY,
myEndX, myEndY,
myScrollHorizontally
);
getAnimationProvider().draw(
canvas,
mySecondaryBitmap, myMainBitmap
);
switch (view.getAnimationType()) {
case curl: