import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class DrawCanvas extends MIDlet implements CommandListener {
private Command exitCommand;
private HCanvas sg;
public DrawCanvas() {
exitCommand = new Command("Exit", Command.EXIT, 1);
sg = new HCanvas();
sg.addCommand(exitCommand);
sg.setCommandListener(this);
Display.getDisplay(this).setCurrent(sg);
}
protected void startApp() {
}
protected void pauseApp() {
}
protected void destroyApp(boolean arg0) {
}
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
}
class HCanvas extends Canvas implements Runnable {
private String str = new String("PRESS 5");
private int[] ak = { 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, 0, 0, 0,
0, 0 };
boolean kaishi = true;
private int k = 6;
public HCanvas() {
new Thread(this).start();
}
protected void paint(Graphics g) {
g.setColor(0x00ffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x00000000);
for (int i = 0; i < str.length(); i++) { //很简单了就是把这个需要做浮动的字进行错位显示
g.drawString(str.substring(i, i + 1), 20 + i * 7, 10 - ak[k- i], 0);
g.drawString(str.substring(i, i + 1), 21 + i * 7, 11 - ak[k- i], 0);// 加重字体7是字体宽度
}
}
public void run() {
while (kaishi) {
try {
repaint(); // 再描绘
Thread.sleep(70); // 等待一定时间
k++;
if (k > (ak.length - 1))
k = 6;
} catch (InterruptedException e) {
}
}
}
}