情況是這樣的 - 我的根佈局是滾動型 - 多繪圖操作)的自定義視圖被嵌入在佈局 我的問題是,如果佈局滾動然後customview.ondraw(正在稱爲多次。由於ondraw()中有很多操作,所以我獲得了性能提升。的Android定製查看性能
什麼是最好的策略呢?
情況是這樣的 - 我的根佈局是滾動型 - 多繪圖操作)的自定義視圖被嵌入在佈局 我的問題是,如果佈局滾動然後customview.ondraw(正在稱爲多次。由於ondraw()中有很多操作,所以我獲得了性能提升。的Android定製查看性能
什麼是最好的策略呢?
請參閱View.setDrawingCacheEnabled()上的文檔。請注意,您必須在onDraw實現中調用getDrawingCache(),並在getDrawingCache()返回非空值時繪製返回的位圖。我不確定ScrollView是否會自動處理調用setDrawingCacheEnabled。你必須嘗試一下並找出答案。我認爲它確實如此;但您仍然需要在onDraw例程中調用getDrawingCache()。
這照顧了非硬件加速的情況。
對於硬件加速視圖,請參閱setLayerType的文檔。緩存硬件加速視圖實際上提供了一個性能改進,這是遠遠不夠的,所以請謹慎操作。
忘記了Android中方法的名稱,但是有一個帶有分割窗格的Swing演示。
如果有一個設置爲true的標誌(連續更新)比拆分面板繪製wile移動spit組件。滾動效果也一樣。只有在滾動完成時,纔可以連續使用繪圖。 iOS也是如此。
您需要找到哪些方法,並在需要時嵌入您的自定義視圖圖紙。
讓我試試這個。我會回來的。 –
setDrawingCacheEnabled()是正確的方法。我使用了http://stackoverflow.com/questions/3046766/android-drawing-cache中提出的變體。謝謝。 –
對於setLayerType方法,您可以查看http://developer.android.com/training/custom-views/optimizing-view.html –