j2me中时间倒计时特效
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class time1 extends MIDlet {
Display dis;
mycanvas mc;
public time1() {
mc=new mycanvas();
dis=Display.getDisplay(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
dis.setCurrent(mc);
new Thread(mc).start();
}
class mycanvas extends Canvas implements Runnable{
int time1=30;
Sprite sp1; // 定义特效数字图片精灵
Image img; //艺术数字效果图
public mycanvas(){
try{
img=Image.createImage("/nums.png");
}catch(Exception e){}
sp1=new Sprite(img,img.getWidth()/10,img.getHeight());
}
protected void paint(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
sp1.setFrame(time1/10); //用来显示当前帧
sp1.setPosition(50, 60);
sp1.paint(g);
sp1.setFrame(time1%10);
sp1.setPosition(56, 60);
sp1.paint(g);
}
public void run() {
long t1,t2;
t1=System.currentTimeMillis(); //获取系统时间单位毫秒
while(time1>0){ //
t2=System.currentTimeMillis(); //获得系统下一秒
if(t2-t1>=1000){
time1-=(t2-t1)/1000; //时间校正以免产生误差
t1=t2;
}
if(time1<=0){ //当
System.out.print("倒计时结束!");
}
try {
Thread.sleep(60);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
}
}