【发布时间】:2014-02-13 08:40:45
【问题描述】:
我打算在 J2ME 表单中放置水平和垂直居中的图像。但是我找不到有用的标记元素来做到这一点。因此,我打算创建一个与表单元素大小相同的完全透明的图像,并将我想要的图像居中叠加在它上面。并将生成的图像放置在表单中(不使用画布)。我正在寻找这样做的方法,因为我对 J2ME 的了解有限。
有什么帮助吗?
public static Image CreateCompositeImage(Image oImage,int formWidth,int formHeight){
final int imageWidth=oImage.getWidth();
final int imageHeight=oImage.getHeight();
int[] imge=new int[imageWidth*imageHeight];
oImage.getRGB(imge,0,imageWidth,0,0,imageWidth,imageHeight);
final int topMargin=(formHeight-imageHeight)/2;
final int leftMargin=(formWidth-imageWidth)/2;
final int pixelTop=topMargin*formWidth;
int[] c=new int[formWidth*formHeight];
int p=0, r=0;
for (int i=0;i<pixelTop;i++){
c[p++]=0xff000000;
}
for (int j=0;j<imageHeight;j++){
for (int i=0;i<leftMargin;i++){
c[p++]=0x880000ff;
}
for (int i=0;i<imageWidth;i++){
c[p++]=imge[r++];
}
for (int i=0;i<leftMargin;i++){
c[p++]=0x8800ff00;
}
}
int pixelBottom=formWidth*formHeight-p;
for (int i=0;i<pixelBottom;i++){
c[p++]=0xffffffff;
}
return Image.createRGBImage(c,formWidth,formHeight,true);
}
【问题讨论】:
-
有趣的想法。如果是我,我可能会创建一个类
PaddedImage扩展Image,然后生成这样的填充图像。构造函数应该接收Displayable的宽度和文件的路径。然后创建两张图像,一张来自文件路径,一张使用Displayable的宽度和文件图像的高度。然后检索较大图像的Graphics对象,并在其上绘制另一个图像。 -
您好,谢谢您的回答。我已经整理了一些将图像读入整数数组的代码;并且还为合成图像创建了另一个数组,并尝试在输入图像周围添加填充。结果是我得到了顶部和底部填充;左右填充不可见,并且中心图像倾斜。试图修复偏度。奇怪的是,它在模拟器上看起来很正确,但在实际设备上却有偏差。这是代码
-
抱歉,有些颜色为了测试而从透明变为彩色。
标签: java-me