Android 绘制对象内存效率
Android Paint Object Memory Efficency
android.graphics.Paint
内存重对象吗?哪个更有效,将绘制对象引用传递给需要在 canvas 上绘制的 类 并在 类 中设置颜色、样式等绘制属性,或者创建新的在需要的地方绘制对象?
对我来说最好的方法是:
为每个具有不同样式或宽度或颜色的对象创建新的 Paint。
并为绘制文本创建其他涂料。 (如果您想绘制不同颜色或文本大小的文本,请创建新的绘制对象)
这种方式让你的代码对其他开发者来说更懒惰,因为一次绘制一个对象,这是很好的 OOP 风格 )))。
是的,Paint
很重,尤其是它的创建和初始化。这是否意味着您必须为所有内容重用相同的 Paint
对象?这要看情况。
如果您要执行多个 drawText()
但颜色不同,那么您可以重复使用相同的油漆但颜色不同(使用 setColor()
)。但是,如果您要在两个不同的 类 中执行两个不相关的操作(绘图),并且 Paint 配置(如颜色、字体大小、样式、PathEffect 等)存在重大差异......那么最好有单独的为他们绘制对象。
简而言之,用同一种颜料画出相似的画,差异较小。并使用不同的绘画对象来执行具有重大差异的不相关绘图。希望这有帮助。
android.graphics.Paint
内存重对象吗?哪个更有效,将绘制对象引用传递给需要在 canvas 上绘制的 类 并在 类 中设置颜色、样式等绘制属性,或者创建新的在需要的地方绘制对象?
对我来说最好的方法是: 为每个具有不同样式或宽度或颜色的对象创建新的 Paint。 并为绘制文本创建其他涂料。 (如果您想绘制不同颜色或文本大小的文本,请创建新的绘制对象)
这种方式让你的代码对其他开发者来说更懒惰,因为一次绘制一个对象,这是很好的 OOP 风格 )))。
是的,Paint
很重,尤其是它的创建和初始化。这是否意味着您必须为所有内容重用相同的 Paint
对象?这要看情况。
如果您要执行多个 drawText()
但颜色不同,那么您可以重复使用相同的油漆但颜色不同(使用 setColor()
)。但是,如果您要在两个不同的 类 中执行两个不相关的操作(绘图),并且 Paint 配置(如颜色、字体大小、样式、PathEffect 等)存在重大差异......那么最好有单独的为他们绘制对象。
简而言之,用同一种颜料画出相似的画,差异较小。并使用不同的绘画对象来执行具有重大差异的不相关绘图。希望这有帮助。