使用Java2D绘制还是将图像作为按钮背景绘制,哪个更好/更快?

3

假设我有一个按钮,想要将背景改为渐变色,使用Java2D绘制渐变色和获取带有该渐变色的图像并将其放置在按钮的背景中,哪种方式更好/更快?

3个回答

1
唯一判断某个东西是否更快的方法是测量它。由于更改按钮的背景颜色因外观和感觉而异,我喜欢实现Icon接口来装饰按钮,正如在这个示例中建议的那样。

1

最佳答案:测量它看看。

现实答案:其实并不重要。屏幕刷新率通常是更重要的因素。

最佳解决方案:使用某种形式的双缓冲使问题不相关。


0

我认为测量和观察很重要。根据我的经验,绘制渐变可能比绘制图像慢。但是,如果你只是在谈论一个小按钮,那么它可能不会有足够的差异值得担心。有一些技巧可以加速渐变。例如,您可以将其绘制到BufferedImage中,每当需要绘制渐变时,使用g.drawImage(Image img, int x, int y, ImageObserver observer)而不是创建新的渐变。更进一步,如果您的渐变是直上直下的,则可以将渐变存储在1像素宽的BufferedImage中。然后,您可以使用g.drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)在整个背景的宽度上绘制渐变。

然而,除非其中一个需要1毫秒,另一个需要0.1毫秒(除非您当然试图每秒调用它1000次),否则担心哪个更快通常是没有意义的。有关更多信息,我建议阅读《Filthy Rich Clients》这本书,特别是第4、5和7章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接