mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 18:29:23 +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 {
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue