import java.io.IOException;
import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;
class ScrollImageCanvas extends Canvas implements Runnable { Image pic;
int drawX, drawY; //原点座标
int scrollleft; //左右移动最大距离
boolean isleft = true; //是否往左移动
boolean isStop = false; ScrollImageCanvas() { try { //装入png图片文件 pic = Image.createImage("/ScrollPic.png"); } catch (IOException e) { //需要import java.io.*; System.out.println("load png resource error " + e.getMessage()); pic = null; }
scrollleft = this.getWidth() - pic.getWidth();
drawX = 0; //getWidth(); drawY = getHeight(); }
protected void paint(Graphics g) {
g.translate(drawX, 0); g.drawImage(pic, 0, drawY, Graphics.BOTTOM | Graphics.LEFT);
}
public void run() {
while (true) { this.scroll(); repaint(); try { Thread.sleep(50); } catch (InterruptedException e) { System.out.println("sleep error : " + e.getMessage()); } if (isStop) { break; } }
}
public void start() { isStop = false; Thread t = new Thread(this); t.start(); }
public void stop() { isStop = true; }
//滚动屏幕 protected void scroll() { if (isleft) { //如果往左滚动完整个图片则往右滚动 if (drawX >= scrollleft) { drawX = drawX - 1; } else { isleft = false; } } else { if (drawX <= 0) { drawX = drawX + 1; } else { isleft = true; } } }}