mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 10:19:33 +02:00
AnimationProvider.setup
This commit is contained in:
parent
e405d15633
commit
cc914b0fcb
5 changed files with 29 additions and 14 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue