滚动屏幕

    技术2022-05-11  103

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

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


    最新回复(0)