解决方案 »
- 继承中的构造方法疑问
- 去重复字符的问题(求完整代码!),急啊。
- 跪求一个正则表达式
- 小弟遇到难题了,请教高手!!!
- JAVA EXCLE 曲线图 柱图
- VB程序,编译成exe文件,这个exe文件在运行过程中如何能删除自身。即当软件30天试用期过后,让它自行消灭,从客户的硬盘中删除。
- 如何使用自己编写的jar包?
- 求助高手,java里面有没有像c语言里那样的广播?如果没有,有没有什么替代机制?请祥解!
- 如何实现DATE型和STRING型之间的转换?50分
- 编译问题
- Error: cannot find symbol symbol: constructor Main(int,int)
- 对类和方法的继承覆盖的求解。
关于 ImageObserver 常数,在 API 中已经有说明了:
ABORT 图像加载被中断
ALLBITS 所有的位都已经加载给图像
ERROR 在加载过程中发生错误
FRAMEBITS 多帧图像的一个帧被传送,一般用于动画GIF
HEIGHT 图像的高度已经可用
PROPERTIES 图像的属性已经可用
SOMEBITS 图像的缩放变体的多个位已可用
WIDTH 图像的宽度已经可用另外,在 Swing 组件中,默认已经使用双缓冲了。 只要在 paint(), paintXXX() 方法中绘制图像,默认就是爽缓冲的。
例如:import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;public class GifPanel extends JPanel { /**
*
*/
private static final long serialVersionUID = 5591574532236923320L;
private Image gif;
public GifPanel(Image gif) {
this.gif = gif;
waitForImage(this, gif);
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(gif, 0, 0, this);
}
/**
* 控制动画播放速度
*/
public boolean imageUpdate(Image image, int flags, int x, int y, int w, int h) {
if((flags & FRAMEBITS) != 0) {
try {
//每帧停顿时间
Thread.sleep(20);
} catch(Exception e) {
e.printStackTrace();
}
repaint();
}
return true;
}
/**
* 等待图像加载完成,
*/
private void waitForImage(Component component,Image image) {
MediaTracker tracker = new MediaTracker(component);
try{
tracker.addImage(image,0);
tracker.waitForID(0);
} catch(InterruptedException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setSize(300, 500);
Image gif = null;
try {
gif = ImageIO.read(GifPanel.class.getResourceAsStream("1.gif"));
} catch (IOException e) {
e.printStackTrace();
}
frame.getContentPane().add(new GifPanel(gif));
frame.setVisible(true);
}
});
}
}
大家能帮忙给一个能播放动画的代码么?
是GIF还有很多的格式么?
我看都是GIF89的格式啊。