如何在Blackberry中设置背景图像?

时间:2012-01-20 05:36:16

标签: blackberry

我想在垂直场管理器中设置背景图像。我试过但它没有填满高度,你可以在我的屏幕上看到。并在我的代码中跟随我的错误,请帮助我。

 vfmCenter = new VerticalFieldManager(FIELD_HCENTER)
   {            
    public void paint(Graphics graphics)
         {

         graphics.clear();
         graphics.drawBitmap(0, 0,deviceWidth,deviceHeight,newimg,0,0);               
         super.paint(graphics);
          }      

          protected void sublayout( int maxWidth, int maxHeight)
          {
             int width = Display.getWidth();
             int height = Display.getHeight();
             super.sublayout( width, height);
             setExtent( width, height);
          }         
          };        

vfmMain.add(vfmCenter);             
        this.add(vfmMain);

enter image description here

3 个答案:

答案 0 :(得分:2)

我之前也遇到过同样的问题..我解决了这个问题..

class MyClass extends MainScreen
{
    // function for scaling your image to fit the screen

    public EncodedImage scaleImage(EncodedImage source, int requiredWidth, int requiredHeight) 
    {  
        int currentWidthFixed32 = Fixed32.toFP(source.getWidth());  
        int requiredWidthFixed32 = Fixed32.toFP(requiredWidth);  
        int scaleXFixed32 = Fixed32.div(currentWidthFixed32, requiredWidthFixed32);  
        int currentHeightFixed32 = Fixed32.toFP(source.getHeight());  
        int requiredHeightFixed32 = Fixed32.toFP(requiredHeight);  
        int scaleYFixed32 = Fixed32.div(currentHeightFixed32, requiredHeightFixed32);  
        return source.scaleImage32(scaleXFixed32, scaleYFixed32);  
    } 
   public MyClass
   {
       ei = EncodedImage.getEncodedImageResource("res/background_image");   
       ei1= scaleImage(ei,requires_width,required_height);
       vfm= new VerticalFieldManager(VerticalFieldManager.USE_ALL_HEIGHT|VerticalFieldManager.USE_ALL_WIDTH);
       vfm.setBackground(BackgroundFactory.createBitmapBackground(ei1.getBitmap()));
       vfm.add(new LabelField("hello notice the background behind me");
       add(vfm);
   }
}

试试这个。我认为这对你有用!!

答案 1 :(得分:0)

试试这样:

VerticalFieldManager vertical=new VerticalFieldManager()
{
    protected void paint(Graphics g) 
    {
        g.drawBitmap(0, 0,Display.getWidth(), Display.getHeight(), bitmap, 0, 0);
        super.paint(g);
    }
    protected void sublayout(int maxWidth, int maxHeight) 
    {
        super.sublayout(Display.getWidth(),Display.getHeight());
        setExtent(Display.getWidth(),Display.getHeight());
    }
};      
add(vertical);

你可以得到。

答案 2 :(得分:0)

这是使用getMainManager的简单方法,但整个背景不是特定的字段管理器

getMainManager().setBackground(BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource("sample.png")));