Android Paint 对象内存效率

Thr*_*ian 4 performance android android-canvas android-paint

android.graphics.Paint内存是重物吗?哪个更有效,将绘制对象引用传递给需要在画布上绘制并在这些类中设置绘制属性(例如颜色、样式等)的类,或者在需要的任何地方创建新的 Paint 对象?

Hen*_*nry 5

是的,Paint很重,尤其是它的创建和初始化。这是否意味着您必须Paint为所有内容重用相同的对象?这要看情况。

如果您要执行多个drawText()但具有不同颜色的操作,那么您可以重复使用相同但具有不同颜色的涂料(使用setColor())。但是,如果您要在两个不同的类中执行两个不相关的操作(绘图),并且 Paint 配置存在重大差异,例如颜色、字体大小、样式、路径效果等……那么最好为它们设置单独的 Paint 对象.

简而言之,使用相同的涂料进行相似的绘图,但差异较小。并使用不同的绘画对象执行具有重大差异的无关绘图。希望这可以帮助。

  • `setColor` 是一个耗时的操作。我不确定你的方法是否真的有效。这是一篇不错的文章:https://medium.com/rosberryapps/make-your-custom-view-60fps-in-android-4587bbffa557 (3认同)