假设我有一个按钮,想要将背景按钮更改为渐变,使用Java2D绘制渐变是更好/更快,还是仅使用该渐变获取图像并将其放在按钮的背景中?
答案 0 :(得分:1)
答案 1 :(得分:1)
最佳答案:测量并查看。
现实的答案:真的不重要。屏幕刷新率通常是更重要的因素。
最佳解决方案:使用某种形式的双缓冲来使问题无关紧要。
答案 2 :(得分: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章。