使用Canvas和Thread设计一个动画解决办法
发布时间:2010-06-05 12:40:10 文章来源:www.iduyao.cn 采编人员:星星草
使用Canvas和Thread设计一个动画
如何 使用Canvas和Thread设计一个动画????????????
------解决方案--------------------
只要在Canvas 的paint中根据绘制参数绘制就行了,而Thread则是驱动绘制参数的更新。
------解决方案--------------------
很基础的问题,随便翻本书就有的
------解决方案--------------------
一帧一帧地画呗
------解决方案--------------------
package prj4_c;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class Canvas_Repaint extends MIDlet {
private Display display;
private MyCanvas mc;
protected void startApp() throws MIDletStateChangeException {
display = Display.getDisplay(this);
mc = new MyCanvas();
display.setCurrent(mc);
//Thread thread = new Thread(mc);
//thread.start();
mc.startAnimation();
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
class MyCanvas extends Canvas implements Runnable {
private int current;
private Image[] image;
public MyCanvas() {
image = new Image[11];
try {
for (int i = 1; i < 12; i++) {
image[i - 1] = Image.createImage("/" + i + ".png");
}
} catch (Exception e) {
e.printStackTrace();
}
current = 0;
}
public void paint(Graphics g) {
int width = this.getWidth();
int height = this.getHeight();
g.setColor(255, 255, 255);
g.fillRect(0, 0, width, height);
g.drawImage(image[current], width / 2, height / 2, Graphics.HCENTER
| Graphics.VCENTER);
}
public void startAnimation() {
repaint();
display.callSerially(this);
}
public void run() {
try {
Thread.sleep(300);
current = (current + 1) % 11;
repaint();
display.callSerially(this);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
------解决方案--------------------
以上程序循序显示1.png--11.png的图片
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
myeclipse上开发j2me的错误提示怎么看(找个好多没有解决的,CSDN能人出来啊......)
对于javame的提示实在无语啊。如下
java.lang.I...
-
命令行执行java程序,含有多个包
我定义了一个java project 叫project1,
然后建立了两个package,(注意都不是jar包)
一个叫animaltestdr...
-
j2me新手问题
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
public class gamestart extends...
-
j2me中如何用代码判断两次pointerPressed之间的时间差?
j2me中如何用代码判断两次pointerPressed之间的时间差?
------解决方案---...
-
通过电脑上wap浏览器可以进入我的wap网站,但是手机不能上,为什么?
我做了wap网站,通过花生壳挂接到外网上了。
通过电脑上wap浏览器可...
-
不含声音文件,如何播放声音?塞班
今天看了一下“飞信JAVA 1.0版”,安装后,信息提示音跟电子音似的。
解压后,发现只有一堆class文件,和...
-
怎么看wtk的源码?高分求助!
我们平时使用eclipse时,点右键选open declaration,或者按F3即可查看源码。现在我建了一个J2ME Midlet工程...
-
如何使用外部js验证下拉列表是否选择
我想使用js对表单进行验证,其中有一个下拉列表,如何验证这个下拉列表在提交的时候已经做过选...
-
关于GUI的一个问题(分不多了,请谅解)
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyMouseAdap...
-
j2me socket读取服务器中文出乱码
conn = (SocketConnection) Connector.open(addr ,Connector.READ_WRITE);
conn.setSocketOpti...