我在理解如何在容器中绘制多个图像以及如何在组件上绘制动画时遇到问题。 首先,我想在组件背景上绘制例如两个图像。这是代码:
公共(public)类CountryInteriorContainer扩展组件{
private PainterChain backgroundPainterChain;
public CountryInteriorContainer () {
super();
backgroundPainterChain = new BackgroundPainterChain(new GroundPainter("CountryBackgroundLand"));
backgroundPainterChain.addPainter(new CastlePainter("CastleBrown"));
getStyle().setBgPainter(backgroundPainterChain);
}
}
这里我正在创建绘画队列。但在容器上绘制时只有一个第一个图像。
公共(public)类 CaSTLePainter 扩展了 BasePainter {
public CastlePainter(String imageId) {
super(imageId);
}
public CastlePainter(Image image) {
super(image);
}
public void paint(Graphics g, Rectangle rect) {
g.drawImage(getImage(), rect.getX() + 40, rect.getY());
}
}
BasePainter 只是从缓存或资源初始化图像。
请帮助我理解为什么只有第一个画家才能正常工作。以及如何在 LWuiT 中创建戏剧性的动画。
最佳答案
我建议您只重写 paint()
或 paintComponent()
而不是陷入画家的复杂性。当尝试构建动画效果时,这一点更为重要。
查看 LWUIT 演示中的动画和 Codename One演示,您无需太多代码即可重现这种风格的动画。
关于java - 在 LWuiT 组件上绘制动画和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953121/