📄 facecanvas.java
字号:
import java.io.IOException;
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
public class FaceCanvas extends GameCanvas implements Runnable, CommandListener{
private Sprite spSpiral; // 动画精灵
private LayerManager lmgr; // 图层管理器
private boolean running = false; // 线程是否启动
private FaceCanvas canvas;
private Command back;
// private Image image;
public FaceCanvas(Image image ){
super(true);
canvas=this;
try {
///把要实现的表情或动作的图片添加到canvas里 就ok了!!
FaceCanvas canvas = new FaceCanvas(Image.createImage("/gita.png"));
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
back = new Command("返回", Command.BACK, 1);
canvas.addCommand(back);
canvas.setCommandListener(this);
try{
// 创建动画精灵
spSpiral = new Sprite(image,120,160);
lmgr = new LayerManager();
lmgr.append(spSpiral);
}catch (Exception e){
System.out.println("Unable to read PNG image");
}
}
/**//*--------------------------------------------------
* 启动线程
*-------------------------------------------------*/
public void start(){
running = true;
Thread t = new Thread(this);
t.start();
}
/**//*--------------------------------------------------
* 主循环
*-------------------------------------------------*/
public void run(){
Graphics g = getGraphics();
while (running){
// 刷新屏幕
drawDisplay(g);
try{
Thread.sleep(700);
} catch (InterruptedException ie) {
System.out.println("Thread exception");
}
}
}
/**//*--------------------------------------------------
* 刷新屏幕
*-------------------------------------------------*/
private void drawDisplay(Graphics g){
// 显示下一帧精灵图像
spSpiral.nextFrame();
// 绘制图层
lmgr.paint(g, 0, 0);
// 将屏幕缓冲刷新到屏幕
flushGraphics();
}
/**//*--------------------------------------------------
* 停止线程
*-------------------------------------------------*/
public void commandAction(Command c, Displayable s){
if (c == back){
////返回到进入表情动作的界面
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -