在我的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) {
}
图片
答案 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
。同样,这与拉伸无关。