在所有版本的Android中,views都有畫到離屏緩沖的能力,這包括使用view的繪制cache,或使用Canvas.saveLayer().離屏緩沖,或者說層,有很多用處.你可以使用它們來為復雜的view動畫或使用組合效果時提高性能.例如,你可以使用Canvas.saveLayer()實現淡出效果,這個方法會臨時的把一個view畫到一個layer中然后使用一個透明系數把它組合回屏幕上.
從Android3.0 (API level11)開始,你對何時以及如何通過View.setLayerType()方法來使用layer有了更多的控制能力.此方法有兩個參數:你想使用的layer的類型和一個可選的Paint對象,這個對象描述了layer應被如何組合.你可以使用Paint參數來應用顏色過濾,或指定混合模式或不透明度到一個layer.view可以使用以下三個類型之一:
• LAYER_TYPE_NONE:view按一般方式繪制,不使用離屏緩沖.這是默認的行為.
• LAYER_TYPE_HARDWARE:如果應用被硬加速了,view會被繪制到一個硬件紋理中.如果應用沒被硬加速,此類型的layer的行為同於LAYER_TYPE_SOFTWARE.
• LAYER_TYPE_SOFTWARE:view被繪制到一個bitmap中.