Android Textsize 的不同绘制

发布于 2024-12-06 16:39:51 字数 84 浏览 2 评论 0原文

当您想以不同的字体大小或样式打印某些内容时,创建新的 Paint() 或修改现有的 Paint() 是否更有效? - 这是针对游戏的,因此每帧都会进行更改

Is it more efficeint to create a new Paint() or modify and exsisting one when you want to print something in a different font size or style? - this is for a game so the changes would be made each frame

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼中杀气 2024-12-13 16:39:51

据我所知,对象创建总是很昂贵的。如果可以的话,您应该避免这种情况,尤其是在每帧都发生这种情况的情况下。 Android 始终建议您重用对象(请参阅此文档)。我认为 Paint 不应该有这么大的内存占用,但为什么不直接重用呢。或者创建其中两个并使用它们?

我什么时候应该重用一个对象(在本例中为绘制)?
如果您只是更改文本大小和颜色,我会重复使用一种油漆。如果您要更改油漆的几乎每个属性来绘制另一个文本,我建议为此创建另一个油漆对象,因为您可以初始化它一次,将其重用于相同类型的文本,并且您的代码会更干净。

As far as I know object creation is always expensive. You should avoid that if you can, especially in your case when this happens each frame. Android always suggest you to reuse objects (see this doc). I don't think that Paint should have such a big memory footprint but why not just reuse. Or create two of them and use them?

When should I reuse an object (paint in this case)?
If you're just changing text size and color I would reuse one paint. If you're changing changing nearly every attribute of paint to draw another text I would suggest to create another paint object for that because you culd initialize it once, reuse it for the same kind of text and your code will be cleaner.

自由如风 2024-12-13 16:39:51

如果 Paint 对象不必更改每一帧,那么我会通过为您需要的每个尺寸创建一个 Paint 对象(但不是在每一帧上)来交换较小的内存损失以获得更好的性能。在类构造函数中执行此操作并在每个帧中使用它,因此它们仅创建一次。
此外,如果不同实例的 Paint 不会发生变化,请将 Paint 设为静态,这样您就会为所有实例拥有一组。

If the Paint object does not have to change each frame, then I would trade a small memory penalty for better performance by creating one Paint object for each size you need, but not on each frame. Do it in the class constructor and use it each frame, so they are created once only.
Moreover, if the Paint will not change for different instances, make the Paints static and you'll have one set for all instances.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文