2015-06-22 201 views
4

簡單的問題,有沒有ViewPager.PageTransformer動畫頁面捲曲效果?ViewPager頁面捲曲

我一直在到處找,但我無法找到它,就真的不知道如何實現它自己...提前

感謝, 塞德里克

+0

您可以顯示一些圖像,這樣我可以爲您提供上查看傳呼機確切的動畫? –

+0

你可以使用這個庫來製作查看尋呼機中的動畫效果:https://github.com/MysticTreeGames/android-page-curl –

+0

是的,我做了一個視頻:) https://goo.gl/photos/ZqnDLttcdUDNyFtz5這可能很難實現,但我認爲很多人都在搜索此 –

回答

8

我覺得@塞德里克是正確的—它可能不值得。

所以我設法讓這個工作,但有很多醜陋的地方在那裏。

  • 軟件體系結構中有一些膠帶。因爲頁面轉換器只能處理視圖,所以應用程序依賴於使用可以處理繪製頁面捲曲的自定義佈局。因此,變壓器是這樣的:

    public static class PageCurlPageTransformer implements PageTransformer { 
    
        @Override 
        public void transformPage(View page, float position) { 
    
         Log.d(TAG, "transformPage, position = " + position + ", page = " + page.getTag(R.id.viewpager)); 
         if (page instanceof PageCurl) { 
          if (position > -1.0F && position < 1.0F) { 
           // hold the page steady and let the views do the work 
           page.setTranslationX(-position * page.getWidth()); 
          } else { 
           page.setTranslationX(0.0F); 
          } 
          if (position <= 1.0F && position >= -1.0F) { 
           ((PageCurl) page).setCurlFactor(position); 
          } 
         } 
        } 
    

    }

  • 爲了得到逼真的翻頁顯示,你必須使用Canvas.clipPath。在模擬器上進行測試時,我無法將其修剪到實際路徑。我不得不在設備上進行測試,看看clipPath是否正常工作。即使關閉硬件加速在模擬器上也不起作用。這讓我低下了自信,這種看法一直都在所有設備上。

  • 我剛在自定義佈局中繪製了帶有dispatchDraw的冰壺角。這可能不是最好的地方。如果我花更多的時間,我可能會在視圖尋呼機中有一個特殊的裝飾視圖,並繪製捲曲。

  • 您可能會注意到反向分頁比分頁轉發快。您可能不喜歡正向或反向的動畫速度。太糟糕了— ViewPager沒有任何方法來調整投擲速度,所以你得到你所得到的。這是使用ViewPager這種事情的另一個限制。

你可以看一下我的項目作爲證據的概念,你確實可以得到一個頁面捲曲以期尋呼機和頁面轉換工作。希望這會給你你需要在你的項目中實現它的東西。

項目是在這裏:https://github.com/klarson2/PageCurlWithPageTransformer

乾杯

+0

你的curlview很獨特。 –

+0

感謝您的努力,但我希望它像photobook(專輯)。 –

+0

不過,這太棒了。 –