📄 animatedcanvas.java
字号:
package ch09.section05;
import java.util.*;
import javax.microedition.lcdui.*;
//绘制动画的画布
public class AnimatedCanvas
extends Canvas {
private Display display;
private Image offscreen;
private Vector images = new Vector();
public AnimatedCanvas(Display display) {
this.display = display;
if (!isDoubleBuffered()) {
offscreen = Image.createImage(getWidth(), getHeight());
}
}
//添加一个动画图像到列表中
public void add(AnimatedImage image) {
images.addElement(image);
}
//采用双缓存技术减少图像抖动
protected void paint(Graphics g) {
Graphics saved = g;
if (offscreen != null) {
g = offscreen.getGraphics();
}
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
int n = images.size();
for (int i = 0; i < n; ++i) {
AnimatedImage img = (AnimatedImage) images.elementAt(i);
img.draw(g);
}
if (g != saved) {
saved.drawImage(offscreen, 0, 0, Graphics.LEFT | Graphics.TOP);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -