📄 tranimagecanvas.java~26~
字号:
import javax.microedition.lcdui.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2006</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class TranImageCanvas extends Canvas implements Runnable{ int game_status = -1; boolean gameRun; Image img_png; Image img_buffer; Display display; public TranImageCanvas(Display display){ try { this.display = display; System.out.println("111"); game_status = 0; System.out.println("222"); img_png = Image.createImage("/res/1.png"); img_buffer = scaleImage(img_png,2,1); System.out.println("333"); gameRun = true; System.out.println("444"); new Thread(this).start(); System.out.println("555"); } catch (Exception ex) { ex.printStackTrace(); } } public Image scaleImage(Image src,int scales1,int scales2) { return transImage(src,src.getWidth()*scales1/scales2,src.getHeight()*scales1/scales2); } public Image transImage(Image src, int w, int h) { int srcW = src.getWidth(); int srcH = src.getHeight(); int dstW=w,dstH=h; Image tmp = Image.createImage(dstW, srcH); Graphics g = tmp.getGraphics(); int scale=16; int delta = (srcW << scale) / dstW;//扫描长度 int pos = delta / 2;//扫描位置 for (int x = 0; x < dstW; x++) { g.setClip(x, 0, 1, srcH); g.drawImage(src, x - (pos >> scale), 0, Graphics.LEFT | Graphics.TOP); pos += delta; } Image dst = Image.createImage( dstW, dstH); g = dst.getGraphics(); delta = (srcH << scale) / dstH; pos = delta / 2; for (int y = 0; y < dstH; y++) { g.setClip(0,y, dstW, 1); g.drawImage(tmp, 0, y - (pos >> scale), Graphics.LEFT | Graphics.TOP); pos += delta; } return dst; } public void keyPressed(int keycode) { if (keycode == -6) { //handleSoft1(); } else if (keycode == -7) { //handleSoft2(); } else if (keycode == -5) // function should be same as soft1 { //handleSelect(); } else if (keycode == -1 || keycode == 50) { // handleUp(); } else if (keycode == -2 || keycode == 56) { //handleDown(); } else if (keycode == -3 || keycode == 52) { // handleLeft(); } else if (keycode == -4 || keycode == 54) { //handleRight(); }else if(keycode == 51){ // handleKey3(); }else if(keycode == 49){ // handleKey1(); } } protected void paint(Graphics g) { /**@todo Implement this javax.microedition.lcdui.Canvas abstract method*/ g.setColor(0); g.fillRect(0,0,176,220); if(game_status == 0) g.drawImage(img_buffer,0,0,0); } public void run() { try { while (gameRun) { if(game_status == 0){ Thread.sleep(100); } //Thread.sleep(100); repaint(); } } catch (Exception ex) { } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -