Android 實現書籍翻頁效果----升級篇

      自從之前發佈了《Android 實現書籍翻頁效果----完結篇 》之後,收到了很多朋友給我留言,前段時間由於事情較多,博客寫得太匆忙很多細節地方沒有描述清楚。所以不少人對其中的地方有不少不明白之處,也有不少人對其中出現的Bug進行了反饋。今天終於找出了段時間對這段時間的一些問題做個簡單的總結。

     之前給出的例子只是能使書籍進行簡單的拖拽,沒有實現翻頁的動畫效果,很多人希望我能加上這一個,所以首先我們就來說說這個翻頁的動畫。

  其實翻頁的動畫很容易實現,只要在Touch擡起後不斷的刷新mTouch.x , mTouch.y 的值就行了,   你可以使用handler,thread,也可以使用Scroller,我個人比較喜歡Scroller,這個比較簡單。

  新添兩個函數:

接着在按下擡起時調用就行了

if (event.getAction() == MotionEvent.ACTION_UP) {
   if (canDragOver()) {   //判斷是否可以翻頁
    startAnimation(1200);
   } else {
    mTouch.x = mCornerX - 0.09f;   //如果不能翻頁就讓mTouch返回沒有靜止時的狀態
    mTouch.y = mCornerY - 0.09f;   // - 0.09f是防止mTouch = 800 或mTouch= 0 要不在這些值時會出現BUG
   }

 

還需要修改的地方是calcPoints() 這個函數,之前爲了防止一個bug出現,添加了if (mBezierStart1.x < 0 || mBezierStart1.x > mWidth) {這個判斷,但是在翻頁動畫時mTouch.x會小於0(從右向左翻時)或者mTouch.x>mWidth(從左往右)這時並不需要在進入這個函數進行處理,所以要在這個情況時將其屏蔽,改爲:

if (mTouch.x > 0 && mTouch.x < mWidth) {
   if (mBezierStart1.x < 0 || mBezierStart1.x > mWidth) {

……}

}

經過上邊的修改就可以完成動畫效果了。

 

還有的童鞋想將這個做成一個電子書閱讀器,但是不知道如何將txt中的內容轉換爲翻頁所需的圖片,並在翻頁後進行切換。所以我新添加了一個簡單的類BookPageFactory,用來讀取SD卡中的一個txt,並將讀取的內容轉換爲一個bitmap用於顯示。哈哈,這個只是一個功能很小的類,只是給大家做個演示,起到拋磚引玉的作用。大家請根據自己所需的功能酌情修改。

源碼附帶的是一個簡單的帶翻頁動畫的電子書閱讀器,大家測試時請將test.txt放於SD卡根目錄下:

pagefactory.openbook("/sdcard/test.txt");

 

新的界面截圖:

       

 

 

源碼下載地址:

      http://download.csdn.net/source/3278901

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章