我想将一张图片的位置设置在背景图片上。该位置可以在屏幕上的任何位置。
我可以提供示例代码或链接或教程吗?
这是我的做法:
由于 BackgroundFactory,这适用于 4.6.0 及更高版本
// Create the background image and the image field to put on top
Background bg = BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource(bgImgPath);
Bitmap bmp = Bitmap.getBitmapResource(imgPath);
BitmapField imgField = new BitmapField(bmp);
// Create the field manager
VerticalFieldManager manager = new VerticalFieldManager()
{
// Overide the sublayout of the field manager to set the position of
// the image directly
protected void sublayout(int width, int height)
{
setPositionChild(imgField, positionX, positionY)
setExtent(width, height)
}
};
// Set the background of the field manager
manager.setBackground(bg);
// add the bitmap field to the field manager
manager.add(imgField);
// add the field manager to the screen
add(manager);
对于多个图像,您可以创建一个布局管理器类,并使用类似技术将所有图像放置在您想要的位置。有一个制作和使用布局管理器的教程,我会尝试挖掘它并将其发布回这里。
如果您使用 4.5.0 或更早版本,我使用布局管理器并像添加任何其他图像一样添加背景图像,但首先添加它以便它在底部绘制。
就像我说的那样,我会尝试找到布局管理器的教程。
您可以创建一个扩展 Manager 类的类在这里您可以指定背景图像,也可以将其他图像放置在您想要的位置
class Test extends MainScreen
{
Test()
{
super();
Bitmap bmp = Bitmap.getBitmapResource("image1.png");
BitmapField bmpf = new BitmapField(bmp);
Mymanager obj = new Mymanager();
obj.add(bmpf);
}
}
class Mymanager extends Manager
{
final Bitmap background = Bitmap.getBitmapResource("back.png");
protected void paint(Graphics g)
{
g.drawrect(0,0,background.getWidth,background.getheight,background,0,0);
}
protected void sublayout(int width, int height)
{
Field field = getfield(0);
layoutchild(field,100,100);
setPositionchild(field,20,10);
setExtent(Display.getWidth,Display.getHeight);
}
}