修复启动画面图像以在j2me中显示

时间:2012-12-04 05:45:37

标签: java-me nokia midp lcdui jsr75

在我的j2me应用程序中,我尝试过在诺基亚手机上运行良好的画布,但不能在三星上运行。为此我必须切换到一些FORM,在两种情况下都有效,但只有问题是大小,如果我创建较小的图像以适合两个手机屏幕,一个(三星)显示确定,但其他(诺基亚)留下了更多的空间反之亦然。

我需要拥有可以拉伸我的图像的代码,并且只需要修复我基本上通过form.getHeight()form.getWidth()属性获得的屏幕尺寸。我想知道是否有Image.createImage(width, height)的属性然后为什么不将它延伸到我提供的值?

我的代码在

之下
try {
        System.out.println("Height: " + displayForm.getHeight());
        System.out.println("Width: " + displayForm.getWidth());
        Image img1 = Image.createImage("/bur/splashScreen1.PNG");
        img1.createImage(displayForm.getHeight(), displayForm.getWidth()); 
        displayForm.append(new ImageItem(null, img1, Item.LAYOUT_CENTER, null));
    } catch (Exception ex) {
    }

图片enter image description here

2 个答案:

答案 0 :(得分:3)

单张图片不适合所有屏幕。但更多的人会这样做 较小的徽标图像应小于96x54,因为这是最小的屏幕分辨率。此图像可以毫无问题地用于128x128的分辨率。但是,分辨率越大,它看起来就越小 较大的徽标图像应略大于128x128,最高可使用240x320。 下面的代码给出了如何实现它的示例。

import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Graphics;

class Splash extends javax.microedition.lcdui.Canvas {

  Image logo;

  Splash () {
    if (getWidth() <= 128) {
      // sl stands for Small Logo and does not need to have a file extension
      // this will use less space on the jar file
      logo = Image.createImage("/sl");
    } else {
      // bl stands for Big Logo
      logo = Image.createImage("/bl");
    }
  }

  protected void paint (Graphics g) {
    // With these anchors your logo image will be drawn on the center of the screen.
    g.drawImage(logo, getWidth()/2, getHeight()/2, Graphics.HCENTER | Graphics.VCENTER);
  }
}

http://smallandadaptive.blogspot.com.br/2008/10/showing-splash.html

所示

答案 1 :(得分:0)

  

想知道是否存在Image.createImage(width, height)的属性,为什么不将它延伸到我提供的值?

此方法中的参数与拉伸无关,请参阅 API javadocs

 public static Image createImage(int width, int height)

    Creates a new, mutable image for off-screen drawing.
        Every pixel within the newly created image is white.
        The width and height of the image must both be greater than zero.

    Parameters:
        width - the width of the new image, in pixels
        height - the height of the new image, in pixels

Image类(API javadocs)还有两个createImage方法,它们使用名为“width”和“height”的参数 - 一个 six ,另一个带有 four 参数但没有一个与拉伸有任何关系。

  • createImage中有六个参数,width和height指定要从源图像复制的区域的大小(不包括拉伸)。

  • 在带有四个参数的方法中,width和height指定如何解释源ARGB数组,如果没有这些,就不可能找出12数组的数组是否代表3x4图片或4x3。同样,这与拉伸无关。