⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imagedemo.java

📁 人民邮电出版社的《J2ME手机开发入门》全部源代码
💻 JAVA
字号:
/*
 * ImageDemo.java
 *
 * Created on 2005年4月26日, 上午11:57
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 *
 * @author  Liu Bin
 * @version
 */
public class ImageDemo extends MIDlet implements CommandListener {
    
    /**
     * 包含图像数据的字节数组
     */
    private byte[] imgData = {-119, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0,
            13, 73, 72, 68, 82, 0, 0, 0, 4, 0, 0, 0, 4, 8, 2, 0, 0, 0,
            38, -109, 9, 41, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, -39, 3,
            66, -42, 79, -95, 0, 0, 0, 32, 99, 72, 82, 77, 0, 0, 122,
            37, 0, 0, -64, -125, 0, 0, -12, 36, 0, 0, -124, -49, 0, 0,
            109, 95, 0, 0, -24, 106, 0, 0, 60, -117, 0, 0, 27, 87, -87,
            -19, -127, 22, 0, 0, 0, 38, 73, 68, 65, 84, 120, -100, 98, -
            8, -56, -35, -56, 125, -8, 35, 16, 1, 25, 0, 1, -60, 0, -95,
            32, 66, 0, 1, -124, -62, 1, 8, 32, 6, 100, 101, 0, 1, 6, 0,
            -99, 98, 25, -31, 101, 39, 47, -71, 0, 0, 0, 0, 73, 69, 78,
            68, -82, 66, 96, -126, 64, 64, 68, -82, 66, 96, -126, 64, 64,
            68, -82, 66, 96, -126, 64, 64, 68, -82, 66, 96, -126, 64, 64,
            68, -82, 66, 96, -126, 64, 64, 68, -82, 66, 96, -126, 64, 64
    };
    
    
    private Display display;
    private MyCanvas can = null;
    
    //命令按钮
    private Command cmdLoadPNG = new Command("显示图像", Command.OK, 1);
    private Command cmdLoadImgData = new Command("显示图像数组", Command.OK, 1);
    private Command cmdExit = new Command("退出", Command.STOP, 1);
    
    public ImageDemo() {
        display = Display.getDisplay(this);
        can = new MyCanvas();
        can.addCommand(cmdLoadPNG);
        can.addCommand(cmdLoadImgData);
        can.addCommand(cmdExit);
        can.setCommandListener(this);
    }
    
    public void startApp() {
        display = Display.getDisplay(this);
        display.setCurrent(can);
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
    
    /**
     * 命令按钮事件
     */
    public void commandAction(Command c, Displayable d) {
        String label = c.getLabel();
        if (label.equals("退出")) {
            notifyDestroyed();
        }
        
        if (label.equals("显示图像")) {
            try {
                can.imgBuffer = Image.createImage("/Res/1.png");
                can.repaint();
            } catch (Exception e) {
            }
        }
        
        if (label.equals("显示图像数组")) {
            Image img1 = Image.createImage(imgData, 0, imgData.length);
            Image img2 = Image.createImage(200, 200);
            Graphics g = img2.getGraphics();
            g.setColor(255, 255, 0);
            g.fillRect(20, 20, 50, 50);
            g.drawImage(img1, 80, 80, Graphics.LEFT | Graphics.TOP);
            can.imgBuffer = img2;
            can.repaint();
        }
    }
    
    class MyCanvas extends Canvas {
        
        Image imgBuffer = null;
        
        protected void paint(Graphics g) {
            if (imgBuffer != null) {
                //清除画布
                g.setColor(0xFFFFFF);
                g.fillRect(0, 0, getWidth(), getHeight());
                
                //居中显示图像
                int w = imgBuffer.getWidth();
                int h = imgBuffer.getHeight();
                g.drawImage(imgBuffer, getWidth()/2 - w/2, getHeight()/2 - h/2,
                        Graphics.LEFT | Graphics.TOP);
            }
        }
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -