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;
}
}
}
}