在黑莓的背景图象的图象

时间:2010-03-09 16:07:48

标签: blackberry blackberry-eclipse-plugin

我想在背景图像上设置一个图像的位置。位置可以在屏幕上的任何位置。

我可以提供示例代码或链接或教程吗?

2 个答案:

答案 0 :(得分:2)

我是这样做的:

由于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或更早版本,我使用布局管理器,只需添加背景图像,就像添加任何其他图像一样,但先添加它,以便在底部绘制。

就像我说的那样,我会尝试找到布局管理器的教程。

答案 1 :(得分:1)

您可以创建一个扩展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);
  }
}