CanvasDemo

From Mobile Application Design
Revision as of 19:49, 5 February 2007 by Deprimer (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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;
        }        
    }    
}