android動畫詳解一 概述
動畫和圖形概述
Android提供了大量的強大的API以應用於UI動畫和繪製2D和3D圖形。下面各節向你描述了這些API的預覽和系統能力以協助你決定怎麼才是達到你需求的最佳方法。
動畫
Android架構提供了兩個動畫系統:兩種動畫系統都是切實可用的,但是一般情況下屬性動畫系統是被首推使用的。因為它更靈活並且提供了更多的特性。在此兩系統之外,你還可以使用Drawable動畫,它使得你可以載入drawable資源並且一幀幀的顯示它們。
Property動畫
從Android3.0(APIlevel11)開始引入,property動畫系統使你可以動畫一個對象的propertie,包括那些不能顯示在螢幕上的對象。此系統是可擴充的並且也能讓你動畫自訂類型的propertie。
View動畫
View動畫是舊的動畫系統並且只能被用於View。它的建立相對容易並且提供了足夠的能力來滿足任何應用的需求。
Drawable動畫
Drawable動畫一個接一個的顯示Drawable資源,就像放電影。
2D和3D圖形
當寫一個應用時,仔細考慮你的圖形需求是很重要的。不同的圖形任務使用不同的技術實現。例如,圖形和動畫的實現對於一個靜態應用與一個互動式遊戲就差別很大。下面,我們將討論一些在Android系統上的繪製圖形的操作以及它們最適合的任務。
Canvas和Drawables
Android提供了一系列的Viewwidget,它們提供了豐富的使用者介面功能。你也可以擴充這些widgets來改變它的們樣子和行為。另外,你可以使用Canvas類的豐富的繪製方法做你自己的2D圖形或為紋理按鈕或一幀接一幀的動畫建立Drawable對象。
硬加速
從Android3.0開始,你可以使用主流的CanvasAPI的硬加速功能大輻提高它們的效能。
OpenGL
Android支援OpenGLES1.0和2.0,Android架構API和本地API(NDK)都支援。當你想為你的應用添加一些CanvasAPI不支援的增強功能時,或你希望不依賴於平台並且沒有高效能需求時,應使用架構API。NDK與架構API之間有效能的差別,所以圖形集中式的應用比如遊戲,使用NDK更佳(但是還要注意重要的一點,你仍然可以使用架構API達到高效能。比如,GoogleBodyapp就是完全用架構API實現的)。NDK中的OpenGL還有一個用處是用於移植本地代碼(比如C++代碼)到Android。