我正在使用 SVG Salamander 和 Java(1.8)。我应该如何为 SVG 图像设置动画?
加载的 .svg 文件已经包含动画。我想我需要以某种方式更新图像,但是如何?
我听说你可以通过 SVGUniverse 为每个 DOM 元素设置动画。但这听起来有点丑...
当前的层次结构使用,如果有帮助的话:SVGPanel <- Jlabel <- SVGIcon
我正在使用 SVG Salamander 和 Java(1.8)。我应该如何为 SVG 图像设置动画?
加载的 .svg 文件已经包含动画。我想我需要以某种方式更新图像,但是如何?
我听说你可以通过 SVGUniverse 为每个 DOM 元素设置动画。但这听起来有点丑...
当前的层次结构使用,如果有帮助的话:SVGPanel <- Jlabel <- SVGIcon
我找到了这个答案。
new Timer(100, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
long diff = System.currentTimeMillis() - start_time;
icon.getSvgUniverse().setCurTime(diff % (10 * 1000));
try {
icon.getSvgUniverse().updateTime();
} catch (SVGException ex) {
ex.printStackTrace();
}
icon.paintIcon(null, g2, 0, 0);
//or repaint it somehow!
}
}).start();
请注意,当您的动画为 T 秒时(此处为 10 秒 * 1000),您必须在 0ms-9999ms 内为您的文件设置动画。击中第 10 秒将返回到 0 秒。