我有一個相對的佈局與幾個ImageViews(與透明領域)在彼此之上。問題是:如果我使其中一個失效,則所有其他的onDraw()方法也會被調用。這是正常的嗎? 我不希望所有圖層(視圖)重新繪製,因爲這是一個很大的性能問題 - 我只想要無效視圖重繪..Android:我如何繞過無效/重繪未受影響的層?
任何想法?
我有一個相對的佈局與幾個ImageViews(與透明領域)在彼此之上。問題是:如果我使其中一個失效,則所有其他的onDraw()方法也會被調用。這是正常的嗎? 我不希望所有圖層(視圖)重新繪製,因爲這是一個很大的性能問題 - 我只想要無效視圖重繪..Android:我如何繞過無效/重繪未受影響的層?
任何想法?
對不起,只是爲了確保:你在說,例如,如果我在一個佈局/視圖中有一個動畫按鈕,與圖形佈局/視圖(在onDraw()中繪製)重疊,並且我按下該按鈕(它動畫...),則整個底層圖形必須再次繪製?聽起來很奇怪 - 爲什麼每個視圖都有一個無效的方法呢? ... – stoefln 2012-01-01 22:46:56
@stoefln:「整個底層圖形必須再次繪製?」 - 重繪的範圍將是Android認爲可能需要重新繪製的任何東西,並且Android傾向於認爲可能需要重繪的東西可能是您自己可能不會這麼想的。 – CommonsWare 2012-01-01 22:59:16
「使用Traceview識別性能瓶頸所在。」 - >瓶頸是路徑的繪製。我無法讓這個速度更快,我只需要緩存視圖的可能性,因爲它只需要繪製一次(讓我們來說說應用何時啓動)。 「或者,可能確實會使用圖層。」 - >這不支持android 2.1 「...而是直接畫到畫布」 - >這就是我所做的。我在視圖的onDraw()中繪製畫布,但正如我所說的,這需要一些處理,每次重新繪製另一個視圖上的某個組件時,我都負擔不起。 – stoefln 2012-01-01 23:33:37