2012-12-26 29 views
1

我在ViewFlipper中有兩個視圖,它們之間有一個快速/複雜的動畫。第二個視圖包含一個列表,因此當視圖在動畫中間變成visibile時,getView()被稱爲一堆,並導致一個非常明顯的stutter(通常拖延整個動畫的後半部分)在動畫顯示之前繪製視圖

理想情況下,我想在開始動畫前預渲染(測量,佈局,繪製)第二個視圖,但我還沒有找到一個簡單的方法來做到這一點。

我也探討了使用繪圖緩存,屏幕外畫布等 - 但我找不到一個簡單的方法來實現這一點。似乎是任何在兩個視圖之間動畫的人都會遇到的問題。任何幫助?

回答

0

您可以通過指定圖層類型並在開始動畫之前調用buildLayer()來強制渲染視圖。

newView.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
newView.buildLayer(); 

你也可以使用LAYER_TYPE_SOFTWARE。缺省值是LAYER_TYPE_NONE,它可以防止buildLayer()執行任何操作。

相關問題