1

コンテナに複数の画像を描画する方法と、コンポーネントにアニメーションを描画する方法を理解するのに問題があります。まず、たとえばコンポーネントの背景に 2 つの画像を描画します。コードは次のとおりです。

public class CountryInteriorContainer extends Component {

private PainterChain backgroundPainterChain;

public CountryInteriorContainer () {
    super();

    backgroundPainterChain = new BackgroundPainterChain(new GroundPainter("CountryBackgroundLand"));
    backgroundPainterChain.addPainter(new CastlePainter("CastleBrown"));

    getStyle().setBgPainter(backgroundPainterChain);
}

}

ここでは、ペイント キューを作成しています。ただし、コンテナに描画する最初のイメージは 1 つだけです。

public class CastlePainter extends 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 でメロドラマチックなアニメーションを作成する方法についても説明します。

4

1 に答える 1

1

ペインターの複雑さを理解するのではなく、オーバーライドすることをお勧めしますpaint()paintComponent()これは、アニメーション効果を作成しようとする場合にさらに重要になります。

LWUIT デモとCodename Oneデモのアニメーションを確認してください。多くのコードを書かなくても、そのスタイルのアニメーションを再現できます。

于 2012-08-15T15:54:04.953 に答える