From d1a7c6346f2e3b4010e293a501ae1e47564b5dc6 Mon Sep 17 00:00:00 2001 From: mwang <8205347@qq.com> Date: Fri, 8 Mar 2019 16:10:08 +0800 Subject: [PATCH] working on txt import --- zhuike/src/main/AndroidManifest.xml | 13 +++++---- .../com/deiniu/zhuike/utils/PageFactory.java | 8 +++-- .../com/deiniu/zhuike/view/PageWidget.java | 3 +- .../view/animation/SimulationAnimation.java | 29 +++++++++---------- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/zhuike/src/main/AndroidManifest.xml b/zhuike/src/main/AndroidManifest.xml index c913378..61b861d 100644 --- a/zhuike/src/main/AndroidManifest.xml +++ b/zhuike/src/main/AndroidManifest.xml @@ -83,11 +83,16 @@ android:label="@string/title_activity_book" android:parentActivityName=".Main2Activity" android:theme="@style/ToolBarTheme.NoActionBar" /> + + @@ -105,11 +110,7 @@ android:label="@string/app_name" android:theme="@style/ToolBarTheme.NoActionBar"> - - + = mBookUtil.getBookLen()) { Log.d(TAG,"已经是本章最后一页了"); @@ -584,8 +586,10 @@ public class PageFactory { trPage.setEnd(mBookUtil.getPosition()); return trPage; */ + int nextPageNo =currentPage.getPageNo(); - if(nextPageNo == currentChaptPages.size()){ + Log.e(TAG,"currentChaptPages.size() is " + currentChaptPages.size() +", currentpage pageno is " + nextPageNo); + if(nextPageNo >= currentChaptPages.size()){ preChaptPages =currentChaptPages; currentChapter++; mBookUtil.setChapterNo(currentChapter); diff --git a/zhuike/src/main/java/com/deiniu/zhuike/view/PageWidget.java b/zhuike/src/main/java/com/deiniu/zhuike/view/PageWidget.java index 3d0ae03..0a6c60a 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/view/PageWidget.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/view/PageWidget.java @@ -147,6 +147,7 @@ public class PageWidget extends View { isRuning = false; mAnimationProvider.setStartPoint(downX,downY); abortAnimation(); + mAnimationProvider.setCancel(false); Log.e(TAG,"ACTION_DOWN"); }else if (event.getAction() == MotionEvent.ACTION_MOVE){ @@ -238,7 +239,7 @@ public class PageWidget extends View { Boolean isNext = mTouchListener.nextPage(); mAnimationProvider.setDirection(AnimationProvider.Direction.next); if (!isNext) { - return true; + return true; } } else { Boolean isPre = mTouchListener.prePage(); diff --git a/zhuike/src/main/java/com/deiniu/zhuike/view/animation/SimulationAnimation.java b/zhuike/src/main/java/com/deiniu/zhuike/view/animation/SimulationAnimation.java index f44113b..a314ce3 100644 --- a/zhuike/src/main/java/com/deiniu/zhuike/view/animation/SimulationAnimation.java +++ b/zhuike/src/main/java/com/deiniu/zhuike/view/animation/SimulationAnimation.java @@ -73,7 +73,7 @@ public class SimulationAnimation extends AnimationProvider { float array[] = { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,1, 0, 0, - 0, 0, 0, 1, 0 }; + 0, 0.2f, 0.2f, 1, 0 }; cm.set(array); mColorMatrixFilter = new ColorMatrixColorFilter(cm); mMatrix = new Matrix(); @@ -86,10 +86,10 @@ public class SimulationAnimation extends AnimationProvider { public void drawMove(Canvas canvas) { if (getDirection().equals(Direction.next)) { calcPoints(); - drawCurrentPageArea(canvas, mCurPageBitmap, mPath0); - drawNextPageAreaAndShadow(canvas, mNextPageBitmap); - drawCurrentPageShadow(canvas); - drawCurrentBackArea(canvas, mCurPageBitmap); + drawCurrentPageArea(canvas, mCurPageBitmap, mPath0); + drawNextPageAreaAndShadow(canvas, mNextPageBitmap); + // drawCurrentPageShadow(canvas); //去除阴影 + drawCurrentBackArea(canvas, mCurPageBitmap); }else{ calcPoints(); drawCurrentPageArea(canvas, mNextPageBitmap, mPath0); @@ -304,13 +304,13 @@ public class SimulationAnimation extends AnimationProvider { mMatrix.setValues(mMatrixArray); mMatrix.preTranslate(-mBezierControl1.x, -mBezierControl1.y); mMatrix.postTranslate(mBezierControl1.x, mBezierControl1.y); + // mPaint.setAlpha(0x90); canvas.drawBitmap(bitmap, mMatrix, mPaint); // canvas.drawBitmap(bitmap, mMatrix, null); mPaint.setColorFilter(null); canvas.rotate(mDegrees, mBezierStart1.x, mBezierStart1.y); - mFolderShadowDrawable.setBounds(left, (int) mBezierStart1.y, right, - (int) (mBezierStart1.y + mMaxLength)); + mFolderShadowDrawable.setBounds(left, (int) mBezierStart1.y, right, (int) (mBezierStart1.y + mMaxLength)); mFolderShadowDrawable.draw(canvas); canvas.restore(); } @@ -481,9 +481,9 @@ public class SimulationAnimation extends AnimationProvider { canvas.save(); if(Build.VERSION.SDK_INT >= 26){ - canvas.clipPath(path); + // canvas.clipPath(path); //将正面变空白了 }else { - canvas.clipPath(path, Region.Op.XOR); + // canvas.clipPath(path, Region.Op.XOR); //未试过,低版本手机上效果如何? } canvas.drawBitmap(bitmap, 0, 0, null); try { @@ -618,11 +618,11 @@ public class SimulationAnimation extends AnimationProvider { // Log.i("hmg", "mBezierEnd2.x " + mBezierEnd2.x + " mBezierEnd2.y " // + mBezierEnd2.y); - /* - * mBeziervertex1.x 推导 - * ((mBezierStart1.x+mBezierEnd1.x)/2+mBezierControl1.x)/2 化简等价于 - * (mBezierStart1.x+ 2*mBezierControl1.x+mBezierEnd1.x) / 4 - */ + /* + * mBeziervertex1.x 推导 + * ((mBezierStart1.x+mBezierEnd1.x)/2+mBezierControl1.x)/2 化简等价于 + * (mBezierStart1.x+ 2*mBezierControl1.x+mBezierEnd1.x) / 4 + */ mBeziervertex1.x = (mBezierStart1.x + 2 * mBezierControl1.x + mBezierEnd1.x) / 4; mBeziervertex1.y = (2 * mBezierControl1.y + mBezierStart1.y + mBezierEnd1.y) / 4; mBeziervertex2.x = (mBezierStart2.x + 2 * mBezierControl2.x + mBezierEnd2.x) / 4; @@ -650,5 +650,4 @@ public class SimulationAnimation extends AnimationProvider { CrossP.y = a1 * CrossP.x + b1; return CrossP; } - }