2017-06-09 39 views

回答

1

如果您應用旋轉動畫,首先將重繪視圖。

硬件層(LAYER_TYPE_HARDWARE)被緩存在GPU上,這使得動畫期間的某些操作更快。簡單的轉換(翻譯,旋轉,縮放和alpha)可以用圖層快速渲染。

LAYER_TYPE_HARDWARE使用佔用GPU內存的圖層,顯然你不想要任何內存泄漏。因此,您應該只在必要時使用硬件層,如在動畫過程中。

With LAYER_TYPE_NONE,您明確要避免啓用硬件加速的硬件層呈現。

作爲參考,讀http://blog.danlew.net/2015/10/20/using-hardware-layers-to-improve-animation-performance/

+1

根據[硬件加速(https://developer.android.com/guide/topics/graphics/hardware-accel.html),*使用顯示列表也有利於動畫性能因爲設置特定的屬性,如alpha或旋轉,並不需要使目標視圖無效(這是自動完成的)。* – York

+0

我猜想旋轉,它會使自身失效,如何在不重繪視圖的情況下發生視圖更改? –

+1

如果您只需要旋轉視圖,則很有可能。 CPU繪製displayList/layer,GPU將layer/displayList與指定的仿射矩陣進行合成,該矩陣包含平移,旋轉,縮放到其父項。 – York

相關問題