概要

WipeアニメーションでPNG画像を表示します。

サンプルコード

class WipeImage extends JComponent implements ActionListener {
  private int ww = 0;
  public WipeImage() {
    super();
    setBackground(Color.BLACK);
  }

  @Override protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    int iw = (int) icon.getIconWidth();
    int ih = (int) icon.getIconHeight();
    if (direction) {
      if (ww < iw) {
        ww += 10;
      } else {
        animator.stop();
      }
    } else {
      if (ww > 0) {
        ww -= 10;
      } else {
        animator.stop();
      }
    }
    g.drawImage(icon.getImage(), 0, 0, iw, ih, this);
    g.fillRect(ww, 0, iw - ww, ih);
  }

  @Override public void actionPerformed(ActionEvent e) {
    repaint();
  }
}
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、Timerを使用して位置と幅を変更しながら画像の上に矩形を描画することでWipeアニメーションを実行しています。

参考リンク

コメント