我有一个为我的Java应用程序绘制的自定义UI。目前,我从头开始绘制整个UI。我知道UI的某些部分是静态的。我知道我可以将这些静态部分保存为图像,但这样做是否会提高性能(因为即使图像也必须在每个帧中绘制)?
在UI绘制完成后,保存Graphics2D对象的引用并将其分配给新的图形对象每帧是否可行(从绘制所有静态组件的点开始)?
提前感谢, Alan
在UI绘制完成后,保存Graphics2D对象的引用并将其分配给新的图形对象每帧是否可行(从绘制所有静态组件的点开始)?
提前感谢, Alan
在每一帧中,您不需要重新绘制所有内容。因此,如果您的UI有静态部分(甚至是动态部分,您知道自上一帧以来它们没有更改),则根本不需要重绘它们。
在我的代码中(主要是Swing游戏和模拟),我通常尝试遵循以下规则:
这种方法似乎工作得很好,并且表现良好(尽管如果有改进方法,我欢迎评论!)
如果屏幕的某些部分完全静态,则永远不要重新绘制该部分。不要进行全屏/窗口清除,只需清除屏幕/窗口中始终变化的部分。
这样,您就不会不必要地重新绘制静态图像。