2016-12-27 43 views
1

android.graphics.Paint內存重物?哪一個更有效率,將paint對象引用傳遞給需要在canvas上繪製並在這些類中設置顏色,樣式等繪畫屬性的類,或者在需要的地方創建新的Paint對象?Android Paint對象內存效率

+0

下降選民請解釋他/她爲什麼倒票?我問這個問題是因爲我曾經用LibGDX繪製和動畫(基本上是遊戲開發)。 LibGDX使用SpriteBatch對象,這是一個內存很大的對象。我不知道它是否與Paint對象一樣? – Thracian

回答

1

是的,Paint很重,特別是它的創建和初始化。這是否意味着你必須重複使用相同的Paint對象?這得看情況。

如果您要執行多個drawText()但顏色不同,則可以重複使用相同顏色但顏色不同的顏色(使用setColor())。但是,如果您要在兩個不同的類中執行兩個不相關的操作(繪圖),並且在顏色,字體大小,樣式,路徑效果等繪畫配置方面存在重大差異,則最好爲它們分別繪製對象。

總之,使用相同的油漆執行相似的繪圖,差異較小。並使用不同的繪畫對象執行不相關的繪畫,但有很大的不同。希望這可以幫助。

+0

這正是我正在尋找的。謝謝,它會對我有很大的好處。你介意解釋爲什麼它很重嗎? I – Thracian

+0

看看'Paint.java'。它由一個'本地'塗料支持。所以當你創建新的Paint對象時,你也在創建本地對象。 – Henry

-1

對我而言,最好的方法是: 爲每個不同風格或寬度或顏色的物體創建新的塗料。 併爲繪製文字創建其他顏料。 (如果你想繪製到不同顏色或文字大小的文本創建新的油漆)

這種方式創建您的代碼更懶惰的其他開發人員,因爲一個油漆繪製一個對象,這是很好的OOP風格)))。