首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

MIDlet 圖片載入與顯示完整教學:從 JAR 資源到 Form 附加

     編輯:J2ME

圖片載入兩大來源

  • JAR 內部資源:Image.createImage("/path.png"),路徑以 / 開頭表示 JAR 根目錄。打包時需將圖片置於 res/ 目錄,WTK 會自動納入 JAR。
  • 外部檔案系統 (JSR-75):Image.createImage("file:///path.png"),需檔案連線權限。

本文專注最常用的 JAR 內部資源方式。

專案建立步驟(WTK 2.x)

  1. 建立新專案 MyImage。
  2. 源碼存為 WTK_HOME/apps/ImageTest/src/MyImage.java。
  3. 準備 PNG 圖片 time.png,置於 WTK_HOME/apps/ImageTest/res/。
  4. 建置並執行專案。

完整原始碼

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

public class MyImage extends MIDlet {
    private Display display;
    private Form show;
    private String date = new Date().toString(); // 示範日期字串

    public MyImage() {
        display = Display.getDisplay(this);
        show = new Form("");
        show.append(new StringItem("DATE: ", date));
    }

    public void startApp() throws MIDletStateChangeException {
        try {
            // 從 JAR 載入圖片
            Image img = Image.createImage("/time.png");
            show.append(img); // Form 直接支援 Image 元件
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        display.setCurrent(show);
    }

    public void pauseApp() {}
    public void destroyApp(boolean unconditional) {}
}

關鍵點解析

  1. Image.createImage("/time.png") 回傳 不可變圖像,安全可跨元件共享。
  2. Form.append(Image) 會自動建立 ImageItem,處理版面配置與捲動。
  3. 若圖片過大超出螢幕,Form 會自動提供捲動條(視實現而定)。
  4. 異常處理:資源不存在會拋 IOException,務必 try-catch 避免 MIDlet 崩潰。

進階:Canvas 上繪製圖片(像素級控制)

class ImageCanvas extends Canvas {
    private Image img;
    public ImageCanvas() {
        try { img = Image.createImage("/time.png"); }
        catch (IOException e) { e.printStackTrace(); }
    }
    protected void paint(Graphics g) {
        g.drawImage(img, getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
    }
}

適用於需結合繪圖、動畫、觸控熱區的場景。

圖片格式與最佳化建議

  • 格式:PNG(無損、支援透明)為首選;JPEG 適合照片類但不支援透明。
  • 尺寸:盡量接近目標螢幕解析度,避免裝置端縮放消耗 CPU 與記憶體。
  • 色深:256 色 (8-bit) 或 65536 色 (16-bit) 足夠,減小檔案體積。
  • 壓縮:使用 pngcrush、optipng 等工具無損壓縮。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved