2016-12-27 44 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风格)))。