Nếu bạn muốn sử dụng một Image làm background trong ứng dụng J2ME, bạn thường gặp phải một vấn đề là: phải sử dụng một image cho mỗi kích thước màn hình khác nhau. Để tránh việc sử dụng nhiều image cho nhiều loại màn hình khác nhau, ta sử dụng cách sau để fit một image đúng với kích thước màn hình.

Đặc tả phương thức:

Tên phương thức CreateScaledImage
Tham s
imgOldImage image gốc dùng để fit
iNewWidth độ rộng mới của image
iNewHeight chiều cao mới của image
Giá trị trả về
một image mới sau khi fit

File Nguồn
public static Image CreateScaledImage( Image imgOldImage, int iNewWidth, int iNewHeight  )
{
Image imgNewImage = null;
final int iOldWidth = imgOldImage.getWidth();
final int iOldHeight = imgOldImage.getHeight();
int iOldRGBArray[] = new int[iOldWidth * iOldHeight];

imgOldImage.getRGB( iOldRGBArray, 0, iOldWidth, 0, 0, iOldWidth, iOldHeight);

int iNewRGBArray[] = new int[iNewWidth * iNewHeight];
for (int yy = 0; yy < iNewHeight; yy++)
{
int dy = yy * iOldHeight / iNewHeight;

for (int xx = 0; xx < iNewWidth; xx++)
{
int dx = xx * iOldWidth / iNewWidth;

iNewRGBArray[(iNewWidth * yy) + xx] = iOldRGBArray[(iOldWidth * dy) + dx];
}
}
imgNewImage = Image.createRGBImage(iNewRGBArray, iNewWidth, iNewHeight, true);
return imgNewImage;
}

Ví dụ:
Bạn có thể sử dụng phương thức này trong một đối tượng Canvas như sau:

public class MyCanvas extends GameCanvas
{
   private Image objBKGImage = null;
   public void paint(Graphics g)
   {
      iViewH = this.getHeight();
      iViewW = this.getWidth(); 

      // load the background image
      if (objBKGImage== null)
      {
         try
         {
            objBKGImage = Image.createImage("/res/Logo_150_53.png");
            objBKGImage = CreateScaledImage(objBKGImage, iViewW, iViewH)
         } catch (IOException ex)
         {
            ex.printStackTrace();
         }
      } 

      // draw background
      if (objBKGImage!= null)
         g.drawImage(objBKGImage,
            (int)iViewW / 2,
            (int)iViewH / 2,
            Graphics.VCENTER | Graphics.HCENTER );

   }
}

Nếu trong quá trìnhh cài đặt, có vần đề gì cứ feedback cho tôi.
Chúc các bạn thành công!