2010-12-22 5 views
1

Ich habe BlackBerry-Code geschrieben, um ein Bild zu einem ButtonField hinzuzufügen. Ich möchte, dass die gesamte Schaltfläche von dem Bild belegt wird, aber das Bild wird nicht vollständig auf dem ButtonField angezeigt. Oben, links und rechts von der Schaltfläche befindet sich eine große Marge. Ich habe versucht, Cellpadding zu verwenden, aber es hat nicht funktioniert.BlackBerry - Wie besetze ich eine komplette Schaltfläche mit Bild

Wie kann ich die Breite und Höhe des ButtonFields so reduzieren, dass es der ursprünglichen Bildgröße von 41 x 41 entspricht?

Antwort

5

Anstatt ein Bild zu einer Schaltfläche hinzuzufügen, erweitern Sie die Bildklasse und verwandeln Sie diese in eine Schaltfläche, indem Sie isFocusable(), navigationClick(), trackhewClick() und keyChar() überschreiben. Hier ist der Code:

public class ImageButtonField extends BitmapField 
{ 
    public ImageButtonField(Bitmap image) { 
     super(image); 
    } 

    public boolean isFocusable() { 
     return true; 
    } 

    protected boolean navigationClick(int status, int time) { 
     fieldChangeNotify(0); 
     return true; 
    } 

    protected boolean trackwheelClick(int status, int time) { 
     fieldChangeNotify(0); 
     return true; 
    } 

    protected boolean keyChar(char character, int status, int time) { 
     if(Characters.ENTER == character || Characters.SPACE == character) { 
      fieldChangeNotify(0); 
      return true; 
     } 
     return super.keyChar(character, status, time); 
    } 
} 
+0

hallo jonathan.Thank Sie so viel für einen solchen Augenblick reply.But i Werkzeugspitze auf dem onfocus Falle meines ButtonField.Will ich in der Lage sein, hinzugefügt haben, die gleiche Sache mit einem Bitmap zu tun, wenn Ich benutze das. Bitte lassen Sie mich darüber wissen – user469999

+0

Sie können genau das gleiche mit dieser Klasse tun. Jede Klasse, die Field erweitert, verfügt über die onFocus() -Methode. – Jonathan

+0

Vielen Dank Jonathan.Ich habe die Lösung ausprobiert, die von Ihnen erzählt wurde und es hat perfekt funktioniert ..... Vielen Dank, so sehr, sehr. – user469999

Verwandte Themen