CanvasDemo

From Mobile Application Design
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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;
        }        
    }    
}