2012-03-24 9 views
1

Ich versuche mit Painter ein bestimmtes JPG zu meinem Hintergrund zu machen.LWUIT Painter: Wie mache ich ein Bild zum Hintergrund?

mapScreen = new Form("Map"); 
     try 
     { 
      Image image = Image.createImage("/res/try.jpg"); 
      map = new Map(image); 
      mapScreen.addComponent(map); 
     } catch (Exception e) 
     { 
      System.out.print("Error\n\n"+e.getMessage()); 
      mapScreen.addComponent(new Label(e.getMessage())); 
     } 

Und für die Karte Klasse, mit diesem

public Map(Image image) 
{ 
    this.mapImage = image; 
    painter = new Painter() 
    { 
     public void paint(Graphics g, Rectangle clippingRect) 
     { 
      g.clipRect(0, 0, getWidth(), getHeight()); 
      g.drawImage(mapImage, getX(), getY()); 
     } 
    }; 
} 
public void initComponent() 
{ 
     setX(0); 
     setY(0); 

     getSelectedStyle().setBgTransparency(0); 
     getSelectedStyle().setBgPainter(painter); 
     getUnselectedStyle().setBgTransparency(0); 
     getUnselectedStyle().setBgPainter(painter); 
} 

Das Problem ist, dass das Bild überhaupt nicht nach oben zeigt, und wenn ich zu debuggen versuchen, es gibt noch nicht einmal die Farbe (Graphics g, Rechteck clippingRect) ... Der Code

try 
     { 
      Image image = Image.createImage("/res/try.jpg"); 
      map = new Map(image); 
      mapScreen.addComponent(map); 
     } 

erfolgreich ist.

Kann mir jemand sagen, wie man es richtig macht? Und wenn jemand weiß, wie man ein Bild vergrößert, das größer ist als die Größe des Bildschirms, können Sie mir dabei helfen? Vielen Dank.

Antwort

1

Verwenden Sie setBgTransparency auf 255 und rufen Sie die clipRect-Methode nicht auf.

Sie können den bg Maler-Code innerhalb von Component.java betrachten, der ziemlich flexibel ist.