2012-01-17 41 views
0

失败,我试图做一个相关图片如下: -图像创作的MIDlet

try 
    { 
     strom = Image.createImage("stromB.png"); 
     map0 = Image.createImage("map0.png"); 
    } 
    catch (Exception e) 
    { 
     System.out.println("image creatino faild"); 
     System.out.println(e.getMessage()); 
    } 

strom工作正常,但map0总是抛出异常。我的猜测是尺寸更大,可能是这个原因。

  • 如何在midlet中使用较大的png图像?
  • midlet是否有任何限制?
  • 我可以用于midlet的最大尺寸是多少?
+0

什么是例外,是因为尺寸较大,使用下面的方法来较大的图像来调整呢? – 2012-01-17 18:07:39

回答

0

map0抛出异常可以根据屏幕大小

/** 
    * This methog resizes an image by resampling its pixels 
    * @param src The image to be resized 
    * @return The resized image 
    */ 

    private Image resizeImage(Image src) { 
     int srcWidth = src.getWidth(); 
     int srcHeight = src.getHeight(); 
     Image tmp = Image.createImage(screenWidth, srcHeight); 
     Graphics g = tmp.getGraphics(); 
     int ratio = (srcWidth << 16)/screenWidth; 
     int pos = ratio/2; 

     //Horizontal Resize   

     for (int x = 0; x < screenWidth; x++) { 
      g.setClip(x, 0, 1, srcHeight); 
      g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP); 
      pos += ratio; 
     } 

     Image resizedImage = Image.createImage(screenWidth, screenHeight); 
     g = resizedImage.getGraphics(); 
     ratio = (srcHeight << 16)/screenHeight; 
     pos = ratio/2;   

     //Vertical resize 

     for (int y = 0; y < screenHeight; y++) { 
      g.setClip(0, y, screenWidth, 1); 
      g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP); 
      pos += ratio; 
     } 
     return resizedImage; 

    }//resize image  
+0

图像有文字通知一些东西。所以我无法调整图像以适应较小的屏幕。我的意图是绘制完整的图像而不包含大小。我将在用户按键事件后将其移动一点点。我没有找到任何选择如何通过使用j2me API来移动画布。请抛出一些光线来实现我的任务。 – masiboo 2012-01-19 12:05:47

+0

使用图像的位置(x和y)根据您的情况在右侧,左侧或任何位置移动图像... – 2012-01-23 11:35:12