CanvasDemo
From Mobile Application Design
Jump to navigationJump to search
Overview
This MIDlet consists of two classes - CanvasDemo and MyCanvas. It's a simple demonstration of creating basic animation on a Canvas.
CanvasDemo
/*
* CanvasDemo
* by Michael Sharon
* copyleft 2006
*
* Canvas using a Timer
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class CanvasDemo extends MIDlet {
private boolean boolMotion=true;
private int iX=10,iY=60;
Display mDisplay;
Thread th;
public void destroyApp(boolean unconditional){}
public void pauseApp() {}
public void startApp() {
mDisplay = Display.getDisplay(this);
final MyCanvas can = new MyCanvas();
mDisplay.setCurrent(can);
}
}
MyCanvas
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MyCanvas extends Canvas implements Runnable {
int count;
int h, w;
public MyCanvas() {
h = getHeight();
w = getWidth();
Thread th=new Thread(this);
th.start();
}
//drawing on canvas
public void paint(Graphics g) {
g.setColor(0,0,0);
g.fillRect(0,0,w,h);
g.setColor(122,122,122);
g.fillRect(0,count,40,40);
g.drawString("counter="+count,60,20,g.TOP|g.LEFT);
}
//handling keyEvents
protected void keyPressed(int keyCode) {
repaint();
}
public void run() {
while(true) {
count++;
repaint();
count%=180;
}
}
}