|
How to use double buffering in MIDP |
|
|
When a graphic is complex or is used repeatedly, you can reduce the time
it takes to display it by first rendering it to an off-screen buffer and
then copying the buffer to the screen. This technique, called double buffering,
is often used for animations.
The example below shows how to use an offscreen buffer in MIDP:
/*
Wireless Java 2nd edition
Jonathan Knudsen
Publisher: Apress
ISBN: 1590590775
*/
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class OffscreenMIDlet extends MIDlet {
public void startApp() {
Displayable d = new OffscreenCanvas();
d.addCommand(new Command("Exit", Command.EXIT, 0));
d.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable s) {
notifyDestroyed();
}
});
Display.getDisplay(this).setCurrent(d);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
class OffscreenCanvas
extends Canvas {
private Image mImage;
public void paint(Graphics g) {
if (mImage == null)
initialize();
g.drawImage(mImage, 0, 0, Graphics.TOP | Graphics.LEFT);
}
private void initialize() {
int w = getWidth();
int h = getHeight();
mImage = Image.createImage(w, h);
Graphics g = mImage.getGraphics();
g.drawRect(0, 0, w - 1, h - 1);
g.drawLine(0, 0, w - 1, h - 1);
g.drawLine(w - 1, 0, 0, h - 1);
}
}
|
Related Tips
|
Page 1 of 0 ( 0 comments )
You can share your information about this topic using the form below!
Please do not post your questions with this form! Thanks.