2010-05-09 6 views
0

J'ai une application très simple qui a un écran et un bouton. L'écran principal a un verticalFieldManager avec un objet BitmapField à l'intérieur, et un bouton sous le bitmap. Je veux être en mesure de superposer une autre image par-dessus lorsque l'utilisateur clique sur un bouton. L'image de superposition est un PNG avec un fond transparent, et c'est important pour le design, donc je ne peux pas utiliser popupscreen ou un nouvel écran car les arrière-plans sont toujours blancs par défaut, et j'ai entendu dire que l'alpha ne fait pas l'affaire .Pouvez-vous superposer des images transparentes dans Blackberry Apps?

Je suppose que ce que je demande est si quelqu'un connaît un moyen simple ...

A) prendre une verticalFieldManager standard et superposer une image PNG sur le contenu intérieur

B) superposer une PNG sur l'écran, peu importe le contenu

La fonctionnalité de base de cette application était destinée à être - afficher une image. sur clic, afficher un autre superposé sur le dessus. cliquez à nouveau, supprimez l'image contextuelle.

Je n'ai rien trouvé qui résout quelque chose comme ceci en ligne, mais j'ai lu des personnes faisant des choses semblables qui utilisent popupscreen et de nouveaux écrans d'une manière que je n'ai pas besoin de faire.

Espérons que cela a du sens. Merci

Répondre

0

Avez-vous essayé quelque chose comme ça dans votre classe personnalisée qui remplace un écran?

EncodedImage _overlayImage; 
boolean _overlay = false; 

// this is to catch the click, you might do it different 
public void fieldChanged(Field field, int context) 
{ 
    if (field == _imgChangeButton) { 
     // get the overlay image here, however you want 
     _overlayImage = getEncodedImageResource(blah); 
     _overlay = true; 
     invalidate(); 
    } 
} 

protected void paint(Graphics graphics) { 
    super.paint(graphics); 

    if (_overlay) { 
     graphics.drawImage(...); 
    } 
} 

Si le PNG a de la transparence, bb drawImage doit le gérer correctement. Dans l'appel drawImage, il est évident que vous pouvez vous amuser à trouver l'image existante et à placer le x, y directement au-dessus.

En général, je dirais faire beaucoup de tests avec paint() et jouer avec les graphiques directement avant d'essayer de faire quoi que ce soit avec un autre écran. Vous pouvez faire beaucoup de peinture prioritaire() pour l'écran ... vous obtenez l'ensemble des graphiques.

Questions connexes