2013-05-27 147 views
3

我覺得使用Canvas.drawPath(path,paint)比Canvas.drawLine()要慢一些,或者使用Canvas.drawLines()代替。 我無法給出確切的性能數據,但我注意到在Nexus 10上,通過使用路徑,繪圖非常緩慢(< 10 FPS),而使用drawLines則更加平滑。 是否有一些實現錯誤或者可能是一個參數來加速性能? 截至目前,我完全無法使用drawPath(),因爲性能太弱。爲什麼Canvas.drawPath()這麼慢?

回答

0

抱歉,不能發表評論。 drawPath()正在進行更多額外的調用。路徑是一個 對象,而不是一個數組。你甚至可以想象所有的額外電話 是由。這是一個Paint所需的方法。 快速多行繪圖不好。這意味着更多的繪畫。

1

我還遇到了drawPath問題(特別是在我的Nexus 10上)。我的問題歸結爲我正在設置一個

strokePaint.setMaskFilter(new BlurMaskFilter(16f, BlurMaskFilter.Blur.NORMAL)); 

這使得表現可怕。爲Canvas.drawPath執行45毫秒。一旦我刪除它,我得到的執行時間在2-4毫秒之間